?标识符和常量
? 所有标识符的前100个字符是有效的,区分大小写。
? 不允许多字节字符。
? 多字符的字符常数按序列中的最后一个字符来编码。
例如,’abc’ == ’c’。
?数据类型
? 整型、双精度型等数据类型长度与常见编译器中数据类型不同,所有的浮点型都是由MS320C2x/C2xx/C5x的
32位的二进制浮点格式来表示。
? size_t(sizeof操作符的结果)定义为unsigned int。
? ptrdiff_t(指针加减的结果)定义为int。
?类型转换
? 浮点数转换为整型数为向零取整转换。
? 指针和整型数可以自由转换。
?表达式
? 当两个有符号整型数相除,如果两个数中任一个为负数,则商为负数,并且余数的符号与被除数的符号相同。
用斜线符号(/)可以得到商,用百分号(%)可以得到余数。
例如:10 / -3 = -3; -10 / 3 = -3;
10 % -3 = 1; -10 % 3 = -1;
? 有符号型数的右移是算术移位,符号被保留。
?声明
? 寄存器变量(register)声明对
short,integer,pointer等所有类型的变量都有效。
?预处理指令(#pragma)
? 预处理器会忽略所有不支持的预处理指令。
? 支持下列预处理指令:CODE_SECTION,
DATA_SECTION和FUNC_EXT_CALLED。
13.1.2 数据类型
?所有整数类型(char,short,int以及对应的无符号类型)都是相同的,都是由16位的二进制数来表示。
?长整型(long)和无符号长整型(unsigned
long)都是由32位的二进制数来表示。
?有符号类型都是由基2的补码来表示。
?字符型是有符号类型,等同于整型。
?枚举(enum)类型的对象用16位数来表示;在表达上与整型相似。
?所有浮点型(float,double和long double)相似,在TMS320C2x/C2xx/C5x中都是用32位浮点格式来表示。
?long和float类型以低有效字存储在低端的存储地址。
注,在TMS320C2x/C2xx/C5x C语言中,字节长度为16位,sizeof操作符返回的对象长度是以16位为字节长度的字节数。例如sizeof(int) = 1。
13.1.3 寄存器变量
C编译器 在一个函数中最多只能用两个寄存器变量,
而且必须在参数表或函数的开始处声明。在嵌套块中的寄存器变量定义被认为是一般的变量。
编译器用AR6和AR7作寄存器变量,
□ AR6被指定为第一个寄存器变量。
□ AR7被指定为第二个寄存器变量。
变量的地址放在指定的寄存器中,访问起来更加容易。16位的字节变量(char,short,int和pointer)
可以用作寄存器变量。
在运行时,设置每一个寄存器变量需要四条指令。
为了有效地利用这种方式,只有在一个变量被多次访问时,才使用寄存器变量。
程序优化编译器也会定义寄存器变量,但使用方式不同。编译器会自己决定哪些变量作为寄存器变量,
程序中声明的寄存器变量会全部被忽略。
13.1.4 asm语句
TMS320C2x/C2xx/C5x的 C编译器可以在编译器输出的汇编语言中直接嵌入汇编语言指令 。这种能力是C语言的扩展 —
—asm语句 。asm语句 能够实现一些C无法实现的功能。
/*******************************************************/
asm(" clrc INTM");
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-29489-46.html
都可以自由的通过美国的任何海域
估计这次小米公关费用花了不少