亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? chapter 4 variables and constants -- valvano.htm

?? Developing Embedded Software in C
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
block. In C local variables must be defined at the beginning of a block. The 
following example is proper C++ code, but results in a syntax error in 
C.</FONT></P>
<DIR>
<P><CODE>void sub(void){ int x;&nbsp;&nbsp;/* a valid local variable declaration 
*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;x=1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int 
y;&nbsp;&nbsp;&nbsp;/* This declaration is improper 
*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;y=2;<BR>}</CODE></P></DIR>
<ADDRESS>Listing 4-13: Example showing an illegal local variable 
declaration</ADDRESS>
<P>&nbsp;</P>
<P><B><I><FONT face=Helvetica,Arial><A 
name=DECLARATIONS></A>Declarations</FONT></I></B></P>
<P><FONT face="Times New Roman,Times">Unlike BASIC and FORTRAN, which will 
automatically declare variables when they are first used, every variable in C 
must be declared first. This may seem unnecessary, but when we consider how much 
time is spent debugging BASIC and FORTRAN programs simply because misspelled 
variable names are not caught for us, it becomes obvious that the time spent 
declaring variables beforehand is time well spent. Declarations also force us to 
consider the precision (8-bit, 16-bit etc.) and format (unsigned vs. signed) of 
each variable.</FONT></P>
<P><FONT face="Times New Roman,Times">As we saw in <A 
href="http://www.ece.utexas.edu/~valvano/embed/chap1/chap1.htm">Chapter 1</A>, 
describing a variable involves two actions. The first action is declaring its 
type and the second action is defining it in memory (reserving a place for it). 
Although both of these may be involved, we refer to the C construct that 
accomplishes them as a <I>declaration</I>. As we saw above, if the declaration 
is preceded by <B>extern</B> it only declares the type of the variables, without 
reserving space for them. In such cases, the definition must exist in another 
source file. Failure to do so, will result in an unresolved reference error at 
link time.</FONT></P>
<P><FONT face="Times New Roman,Times">Table 4-1 contains examples of legitimate 
variable declarations. Notice that the declarations are introduced by one or 
type keywords that states the data type of the variables listed. The keyword 
<B>char</B> declares 8-bit values, <B>int</B> declares 16-bit values, 
<B>short</B> declares 16-bit values and <B>long</B> declares 32-bit values. 
Unless the modifier <B>unsigned</B> is present, the variables declared by these 
statements are assumed by the compiler to contain signed values. You could add 
the keyword <B>signed</B> before the data type to clarify its type.</FONT></P>
<P><FONT face="Times New Roman,Times">When more than one variable is being 
declared, they are written as a list with the individual names separated by 
commas. Each declaration is terminated with a semicolon as are all simple C 
statements.</FONT></P>
<P><FONT face="Times New Roman,Times">
<TABLE cellSpacing=0 cellPadding=0 width=511 bgColor=white border=0>
  <TBODY>
  <TR>
    <TD><FONT face="Times New Roman,Times" size=2>Declaration</FONT></TD>
    <TD><FONT face="Times New Roman,Times" size=2>Comment</FONT></TD>
    <TD><FONT face="Times New Roman,Times" size=2>Range</FONT></TD></TR>
  <TR>
    <TD><CODE><FONT face="Times New Roman,Times">unsigned char 
      uc;</FONT></CODE></TD>
    <TD><FONT face="Times New Roman,Times" size=2>8-bit unsigned 
    number</FONT></TD>
    <TD><FONT face="Times New Roman,Times" size=2>0 to +255</FONT></TD></TR>
  <TR>
    <TD><CODE><FONT face="Times New Roman,Times">char 
    c1,c2,c3;</FONT></CODE></TD>
    <TD><FONT face="Times New Roman,Times" size=2>three 8-bit signed 
      numbers</FONT></TD>
    <TD><FONT face="Times New Roman,Times" size=2>-128 to +127</FONT></TD></TR>
  <TR>
    <TD><CODE><FONT face="Times New Roman,Times">unsigned int 
    ui;</FONT></CODE></TD>
    <TD><FONT face="Times New Roman,Times" size=2>16-bit unsigned 
    number</FONT></TD>
    <TD><FONT face="Times New Roman,Times" size=2>0 to +65535</FONT></TD></TR>
  <TR>
    <TD><CODE><FONT face="Times New Roman,Times">int i1,i2;</FONT></CODE></TD>
    <TD><FONT face="Times New Roman,Times" size=2>two 16-bit signed 
      numbers</FONT></TD>
    <TD><FONT face="Times New Roman,Times" size=2>-32768 to 
+32767</FONT></TD></TR>
  <TR>
    <TD><CODE><FONT face="Times New Roman,Times">unsigned short 
      us;</FONT></CODE></TD>
    <TD><FONT face="Times New Roman,Times" size=2>16-bit unsigned 
    number</FONT></TD>
    <TD><FONT face="Times New Roman,Times" size=2>0 to +65535</FONT></TD></TR>
  <TR>
    <TD><CODE><FONT face="Times New Roman,Times">short s1,s2;</FONT></CODE></TD>
    <TD><FONT face="Times New Roman,Times" size=2>two 16-bit signed 
      numbers</FONT></TD>
    <TD><FONT face="Times New Roman,Times" size=2>-32768 to 
+32767</FONT></TD></TR>
  <TR>
    <TD><CODE><FONT face="Times New Roman,Times">long 
      l1,l2,l3,l4;</FONT></CODE></TD>
    <TD><FONT face="Times New Roman,Times" size=2>four signed 32 bit 
      integers</FONT></TD>
    <TD><FONT face="Times New Roman,Times" size=2>-2147483648L to 
      2147483647L</FONT></TD></TR>
  <TR>
    <TD><CODE><FONT face="Times New Roman,Times">float f1,f2;</FONT></CODE></TD>
    <TD><FONT face="Times New Roman,Times" size=2>two 32-bit floating 
      numbers</FONT></TD>
    <TD>not recommended</TD></TR>
  <TR>
    <TD><CODE><FONT face="Times New Roman,Times">double 
d1,d2;</FONT></CODE></TD>
    <TD><FONT face="Times New Roman,Times" size=2>two 64-bit floating 
      numbers</FONT></TD>
    <TD>not recommended</TD></TR></TBODY></TABLE></FONT></P>
<ADDRESS>Table 4-1: Variable Declarations</ADDRESS>
<ADDRESS>&nbsp;</ADDRESS>
<P><FONT face="Times New Roman,Times">ICC11 version 4 does not support long 
integers, and ICC12 does not support unsigned long integers. ICC11 and ICC12 
compilers allow the <B>register</B> modifier for automatic variables, but the 
compilers still define the register locals on the stack. The keywords <B>char 
int short long</B> specifies the precision of the variable. The following tables 
shows the available modifiers for variables.</FONT></P>
<P>
<TABLE cellSpacing=0 width=521 border=0>
  <TBODY>
  <TR>
    <TD vAlign=center width="16%" bgColor=white><FONT 
      face="Times New Roman,Times">Modifier</FONT></TD>
    <TD vAlign=center width="84%" bgColor=white><FONT 
      face="Times New Roman,Times">Comment</FONT></TD></TR>
  <TR>
    <TD vAlign=center width="16%" bgColor=white><CODE>auto</CODE></TD>
    <TD vAlign=center width="84%" bgColor=white><FONT 
      face="Times New Roman,Times">automatic, allocated on the 
stack</FONT></TD></TR>
  <TR>
    <TD vAlign=center width="16%" bgColor=white><CODE>extern</CODE></TD>
    <TD vAlign=center width="84%" bgColor=white><FONT 
      face="Times New Roman,Times">defined in some other program</FONT> 
  file</TD></TR>
  <TR>
    <TD vAlign=center width="16%" bgColor=white><CODE>static</CODE></TD>
    <TD vAlign=center width="84%" bgColor=white><FONT 
      face="Times New Roman,Times">permanently allocated </FONT></TD></TR>
  <TR>
    <TD width="16%" bgColor=white><CODE>register</CODE></TD>
    <TD width="84%" bgColor=white>attempt to implement an automatic using a 
      register instead of on the stack</TD></TR></TBODY></TABLE></P>
<ADDRESS>Table 4-2: Variable storage classes</ADDRESS>
<ADDRESS>&nbsp;</ADDRESS>
<P>
<TABLE cellSpacing=0 width=521 border=0>
  <TBODY>
  <TR>
    <TD vAlign=center width="16%" bgColor=white><FONT 
      face="Times New Roman,Times">Modifier</FONT></TD>
    <TD vAlign=center width="84%" bgColor=white><FONT 
      face="Times New Roman,Times">Comment</FONT></TD></TR>
  <TR>
    <TD vAlign=center width="16%" bgColor=white><CODE>volatile</CODE></TD>
    <TD vAlign=center width="84%" bgColor=white><FONT 
      face="Times New Roman,Times">can change value by means other than the 
      current program</FONT></TD></TR>
  <TR>
    <TD vAlign=center width="16%" bgColor=white><CODE>const</CODE></TD>
    <TD vAlign=center width="84%" bgColor=white><FONT 
      face="Times New Roman,Times">fixed value, defined in the source code and 
      can not be changed during execution</FONT></TD></TR>
  <TR>
    <TD vAlign=center width="16%" bgColor=white><CODE>unsigned</CODE></TD>
    <TD vAlign=center width="84%" bgColor=white><FONT 
      face="Times New Roman,Times">range starts with 0 includes only positive 
      values</FONT></TD></TR>
  <TR>
    <TD vAlign=center width="16%" bgColor=white><CODE>signed</CODE></TD>
    <TD vAlign=center width="84%" bgColor=white><FONT 
      face="Times New Roman,Times">range includes both negative and positive 
      values</FONT></TD></TR></TBODY></TABLE></P>
<ADDRESS>Table 4-3 Variable modifiers</ADDRESS>
<P>&nbsp;</P>
<P><FONT face="Times New Roman,Times">As we shall see, a similar syntax is used 
to declare pointers, arrays, and functions (<A 
href="http://www.ece.utexas.edu/~valvano/embed/chap7/chap7.htm">Chapters 7</A>, 
<A href="http://www.ece.utexas.edu/~valvano/embed/chap8/chap8.htm">8</A>, and <A 
href="http://www.ece.utexas.edu/~valvano/embed/chap10/chap10.htm">10</A>).</FONT></P>
<P><B><I><FONT face=Helvetica,Arial><A name=CHARACTER></A>Character 
Variables</FONT></I></B></P>
<P><FONT face="Times New Roman,Times">Character variables are stored as 8-bit 
quantities. When they are fetched from memory, they are always promoted 
automatically to 16-bit integers. Unsigned 8-bit values are promoted by adding 8 
zeros into the most significant bits. Signed values are promoted by coping the 
sign bit (bit7) into the 8 most significant bits.</FONT></P>
<P><FONT face="Times New Roman,Times">There is a confusion when signed and 
unsigned variables are mixed into the same expression. It is good programming 
practice to avoid such confusions. As with integers, when a signed character 
enters into an operation with an unsigned quantity, the character is interpreted 
as though it was unsigned. The result of such operations is also unsigned. When 
a signed character joins with another signed quantity, the result is also 
signed.</FONT></P>
<DIR>
<P><CODE>char x;&nbsp;&nbsp;&nbsp;/* signed 8 bit global */<BR>unsigned short 
y;&nbsp;&nbsp;&nbsp;/* unsigned signed 16 bit global */<BR>void 
sub(void){<BR>&nbsp;&nbsp;&nbsp;&nbsp;y=y+x;<BR>/* x treated as unsigned even 
though defined as signed */<BR>}</CODE></P></DIR>
<ADDRESS>Listing 4-13: An example showing the mixture of signed and unsigned 
variables</ADDRESS>
<P><FONT face="Times New Roman,Times">There is also a need to change the size of 
characters when they are stored, since they are represented in the CPU as 16-bit 
values. In this case, however, it matters not whether they are signed or 
unsigned. Obviously there is only one reasonable way to put a 16-bit quantity 
into an 8-bit location. When the high-order byte is chopped off, an error might 
occur. It is the programmer's responsibility to ensure that significant bits are 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜国产不卡在线观看视频| 国产精品国产三级国产有无不卡| 99久久婷婷国产综合精品电影| 蜜桃av一区二区三区| 亚洲成人免费在线| 天堂成人国产精品一区| 一区二区免费在线| 亚洲一区二区三区中文字幕 | 久久久高清一区二区三区| 日韩一区二区电影在线| 欧美乱妇15p| 日韩精品中文字幕在线不卡尤物 | 国产成都精品91一区二区三| 精品一区二区av| 国产999精品久久久久久| 国产在线精品一区二区夜色| 激情偷乱视频一区二区三区| 国产精品中文字幕欧美| 99久久99久久久精品齐齐| 在线免费观看日本一区| 91精品在线观看入口| 精品毛片乱码1区2区3区| 久久久久亚洲综合| 一区二区免费在线| 日本午夜一本久久久综合| 国产精一区二区三区| 成人高清视频在线| 欧美三级三级三级爽爽爽| 日韩一区二区三区电影在线观看 | 国内精品国产成人| 成人av午夜影院| 欧美性生活久久| 欧美一卡二卡三卡| 国产精品第四页| 日本麻豆一区二区三区视频| 成人av电影在线| 欧美性一区二区| 精品sm捆绑视频| 亚洲色图视频网站| 久久精品二区亚洲w码| 91在线高清观看| 久久久一区二区| 日韩国产高清在线| 色哟哟一区二区三区| 2022国产精品视频| 亚洲成av人片一区二区| 成人网在线免费视频| 6080午夜不卡| 一区二区三区av电影| 国产精品一级片在线观看| 欧美少妇bbb| 国产精品超碰97尤物18| 国产一区二区三区免费看| 欧美日韩精品福利| 亚洲欧美另类图片小说| 国产成人免费在线观看不卡| 日韩一区二区在线观看视频| 一区二区三区小说| caoporm超碰国产精品| 久久综合中文字幕| 免播放器亚洲一区| 欧美三级视频在线| 亚洲已满18点击进入久久| 国产69精品久久99不卡| 精品国产伦一区二区三区观看方式 | 色综合久久99| 日韩毛片一二三区| 91伊人久久大香线蕉| 久久久久久久久久久电影| 石原莉奈在线亚洲二区| 欧美性生活久久| 亚洲午夜精品网| 欧美专区亚洲专区| 亚洲激情一二三区| 久久久亚洲精品石原莉奈| 日韩精品高清不卡| 欧美一区二区三区性视频| 视频一区在线播放| 欧美一区二区三区喷汁尤物| 偷拍日韩校园综合在线| 欧美日韩一二三| 亚洲亚洲人成综合网络| 欧美日韩成人一区二区| 偷拍一区二区三区| 精品精品欲导航| 激情丁香综合五月| 国产亚洲一区二区三区| 粉嫩av一区二区三区在线播放| 国产欧美中文在线| 色综合天天视频在线观看| 一区二区三区四区高清精品免费观看 | 国产一区二区三区高清播放| 久久久www免费人成精品| 国产成人av一区二区三区在线 | 日韩高清在线一区| 精品国产电影一区二区| 国产综合久久久久久鬼色| 国产女人18毛片水真多成人如厕| 成人午夜在线播放| 亚洲成a人片综合在线| 日韩欧美国产一区在线观看| 精品一区二区三区在线观看国产| 久久久久亚洲蜜桃| 在线视频亚洲一区| 久久超碰97中文字幕| 亚洲婷婷综合久久一本伊一区| 欧美在线制服丝袜| 国产一区二区三区美女| 亚洲日穴在线视频| 精品国产制服丝袜高跟| 99re这里只有精品首页| 午夜私人影院久久久久| 久久久国产精品麻豆 | 日本aⅴ亚洲精品中文乱码| 欧美电视剧免费全集观看| 成人激情图片网| 免费成人美女在线观看| 国产精品视频一二三| 欧美高清视频www夜色资源网| 国产精品1区二区.| 亚洲福中文字幕伊人影院| 国产亚洲成aⅴ人片在线观看| 2023国产一二三区日本精品2022| 99久久精品国产毛片| 激情综合网av| 视频一区在线播放| 一区二区三区在线观看网站| 久久久久国产精品免费免费搜索| 欧美亚洲综合久久| 99国产精品久久久| 国产成人免费视频精品含羞草妖精 | 国产偷国产偷精品高清尤物| 欧美人与z0zoxxxx视频| 一道本成人在线| av在线播放一区二区三区| 精品影视av免费| 日韩电影在线一区二区| 亚洲啪啪综合av一区二区三区| 精品国产亚洲在线| 日韩美女主播在线视频一区二区三区| 欧美综合色免费| 色8久久人人97超碰香蕉987| 国产成人综合精品三级| 精品一区二区三区不卡 | 久久综合色婷婷| 日韩欧美在线网站| 欧美一区二区私人影院日本| 色综合天天视频在线观看 | 欧美最猛黑人xxxxx猛交| 91在线精品一区二区三区| 成人h精品动漫一区二区三区| 国产一区二区伦理| 精品亚洲成a人| 国内外精品视频| 国产不卡免费视频| 播五月开心婷婷综合| 成人免费毛片高清视频| a亚洲天堂av| 在线视频中文字幕一区二区| 91麻豆国产精品久久| 91麻豆自制传媒国产之光| 91尤物视频在线观看| 在线观看视频一区| 欧美精品亚洲二区| 日韩一区二区精品在线观看| 日韩久久免费av| 中文字幕欧美日韩一区| 综合中文字幕亚洲| 婷婷亚洲久悠悠色悠在线播放| 亚洲va中文字幕| 国产综合久久久久久久久久久久| 国产一区在线不卡| 9久草视频在线视频精品| 欧美中文字幕一区| 精品国产一区二区三区不卡| 国产亚洲成aⅴ人片在线观看| 国产精品福利一区| 亚洲尤物在线视频观看| 日韩成人精品在线观看| 国产一级精品在线| 91成人网在线| 久久综合色天天久久综合图片| 国产精品久久久久一区二区三区| 亚洲最新在线观看| 国产一区欧美二区| 欧美三级乱人伦电影| 精品久久久久久久久久久久久久久| 国产精品情趣视频| 日本免费新一区视频| 欧美中文字幕不卡| 欧美电影精品一区二区| 国产精品久久午夜夜伦鲁鲁| 亚洲电影激情视频网站| 国产一区二区精品久久| 欧美丝袜丝交足nylons图片| 久久综合狠狠综合久久综合88| 亚洲韩国精品一区| av日韩在线网站| 欧美精品一区在线观看| 亚洲一区二区视频|