|

楼主 |
发表于 19-7-2009 04:17 PM
|
显示全部楼层
接下来。。。。c18 data types.
接下来。。。。c18 data types.
在programming的时候, 免不了要用到variables....当用variables的时候, 你必须要declare你的variables....
data type就是define 你的variable是属于哪一种类型的。。。。
每个compiler自己的data type代表的定义不一样。。。
给c18来说, 有几个data types,那就是(从user guide抄出来的 ):
char(1,2)
| 8 bits
| -128
| 127
| signed char
| 8 bits
| -128
| 127
| unsigned char
| 8 bits
| 0
| 255
| int
| 16 bits
| -32,768
| 32,767
| unsigned int
| 16 bits
| 0
| 65,535
| short
| 16 bits
| -32,768
| 32,767
| unsigned short
| 16 bits
| 0
| 65,535
| short long
| 24 bits
| -8,388,608
| 8,388,607
| unsigned short long
| 24 bits
| 0
| 16,777,215
| long
| 32 bits
| -2,147,483,648
| 2,147,483,647
| unsigned long
| 32 bits
| 0
| 4,294,967,295
| 在没有注明unsigned 还是signed下.默认都是signed.
未必每个compiler都是这样默认。 所以习惯上还是注明比较好。
pic18是8bit mcu. register data width = 8bits.做8bits的运算是最快的。
所以没必要的时候尽量使用unsigned char. 如果你有一个variable只需要0-200,你可以用:
unsigned char
short, unsigned short,
int, unsigned int,
short long,
unsigned short long
long
unsigned long.
都可以。。。。不过用short, int会用2bytes.再加上pic18f只是8bits mcu.做16 bits operation会比8bits operation来得慢。所以用int, short只是浪费时间, 浪费空间。 再加上如果用signed.浪费时间x2.
long 更够里, 不多说了。。。
所以, 根据自己需要, 来declare你的variables data type....mcu ram通常不是很多。。。。。 
[ 本帖最后由 fritlizt 于 27-7-2009 10:41 PM 编辑 ] |
|