1. IAR程序下载后,一切正常,但无法启动。 --- 全局变量过大。
类似的问题再次遇到,在Linux环境下,对于一个全局变量的值进行显示,不过总会显示不全或者起始内容与逻辑不一致,后来发现是全局空间满,删除部分全局变量后,此问题消失。
2.C语言:
关于连续使用大于号/小于号的问题
请看下面一段代码:
int main()
{
int a = 0x35;
intres ;
res= (0 > a < 0x39);
printf("res:%d\n",res);
return0;
}
编译过程中,提示:“warning C4804: '<' : unsafe use of type 'bool' in operation”
在Windows XP VC6.0 编译后,结果是:res:1
在Fedora8 GCC 编译后,结果是:res:1
就是说,对于连续的大小符号进行判断,一般而言编译器是从左到右进行运算。先是进行 0>a 的判断,得到结果是1,然后是 1<0x39 的判断,结果为 1。
因此,如果要判断a是否在10-99之间,这样的语句if(99 > a > 10)这样很危险