C语言 一个8位的变量和16位变量可以直接对比吗?

1. #define定义的宏和const定义的常量有什么区别?

(1) 编译器处理方式不同 #define 宏是在预处理阶段展开。 const 常量是编译运行阶段使用。 (2) 类型和安全检查不同 #define 宏没有类型,不做任何类型检查,仅仅是展开。 const 常量有具体的类型,在编译阶段会执行类型检查。 #define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。(宏定义不分配内存,变量定义分配内存。) const定义的变量属于只读变量。是有分配内存的。

  注意:只读变量和常量是有区别的。常量肯定是只读的,例如5, “abc”,等,肯定是只读的,因为程序中根本没有地方存放它的值,当然也就不能够去修改它。而“只读变量”则是在内存中开辟一个地方来存放它的值,只不过这个值由编译器限定不允许被修改。

因为a为int型,所以不能有小数点

2. 给定一个整型变量a,写两段代码,第一个设置a的bit3,第二个清除a的bit2,在以上两个操作中, 要保持其它位不变。

最上面的括号一定要加上,不然在clear_bit3中会有问题,~的优先级问题

1个内存单元可以存储一个字节,所以如果编译器用的是visual c++的话,定义的long int a;变量a占4个内存单元。

我要回帖

更多关于 c语言字符可以直接比较大小吗 的文章

 

随机推荐