c语言复习课程1(唐老师答疑课)

时间:2022-12-19 01:45:20

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等。