1.register变量不能当作全局变量,因为cpu的资源是否有限,所以编译器会严格保护资源,不会让register变量申请为全局变量。
2.对于register变量进行取地址运行,一般编译器会进行报错,因为这是去取寄存器中的地址,寄存器是没有地址的。
3.位运算和逻辑运算不要一起使用~~~注意:位运算没有短路特性,这个很明显。
4.对于volatile和const同时使用定义一个变量的情况:我只能想到对只读寄存器的定义。 volatile最好不要理解成易变的,应该理解成直接从内存地址中取值,编译器不做优化。
5.sizeof(fun()) 这条语句没有执行fun() 因为sizeof不是函数,是关键字是在编译器就决定的了。
6.对于unsigned int的输出和unsigned long的输出,在printf中本来对于unsigned long应该用%lu来定义格式的,unsigned int用%u来定义格式的。但是由于现在的编译器大多把int和long都当作32位来用,所以都可以只用%u来输出。这里有一个值得提示的是:记得对于long型的输出应该是%ld %lo %lx %lu等的。
7.对于long long类型还没有找到很官方的资料,网上都说是64位的,输出格式应该是%lld,%llu,%llo,%llx等。