当前位置: 心心文库

吐血整理!c语言的底层10句

1、成员为成员Actual Align的整数倍,在前面加Padding。

2、在VC及BC提供的头文件中,除了能正好对齐在四字节上的结构外,都加了pack,否则我们编的Windows程序哪一个也不会正常运行。

3、在 #pragma pack(n) 后一定不要include其他头文件,若包含的头文件中改变了align值,将产生非预期结果。

4、按位运算是对字节或字中的实际位进行检测、设置或移位, 它只适用于字符型和整数型变量以及它们的变体, 对其它数据类型不适用。

5、这样一来,编译器无法为特定平台做优化,如果效率非常重要,就尽量不要使用#pragma pack,如果必须使用,也最好仅在需要的地方进行设置。

6、当不同的结构使用不同的字节对齐定义时,可能导致它们之间交互变得很困难。

7、在跨CPU进行通信时,可以使用字节对齐来保证唯一性,诸如通讯协议、写驱动程序时候寄存器的结构等。

8、不要多人同时定义一个数据结构。这样可以保证一致的pack值。

9、自然对齐方式(Natural Alignment):与该数据类型的大小相等。

10、关系运算和逻辑运算表达式的结果只能是1或0。 而按位运算的结果可以取0或1以外的值。要注意区别按位运算符和逻辑运算符的不同, 例如, 若x=7, 则x&&8 的值为真(两个非零值相与仍为非零), 而x&8的值为0。