(1)、=不同于==
因此编程规范建议将常量值放左边,变量值放右边,这样编译器能帮助检测出来。
(2)、&和 | 不同于 && 和 ||
位运算符: & 、 | 。 &:按位与运算符; | :按位或运算符;
逻辑运算符:&& 、 || 。 &&:逻辑与运算符,条件判断,两边要同时成立; || : 逻辑或运算符,条件判断,其一成立即可;
(3)、运算符编写一定要按照规范操作,如
a---b;++a+b; n-->0 , a+++++b ,另外不同编译器之间肯定是有差异的,要按照可阅读,好维护,易上手特点进行编程。
(4)、结构体对齐问题
后续详解。
结构体对齐,一是内存访问需要,二是数据对齐方便软件处理。对齐原则:
原则1、数据成员对齐规则:结构(struct或联合union)的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储)。
原则2、结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其内部最大元素大小的整数倍地址开始存储。(struct a里存有struct b,b里有char,int,double等元素,那b应该从8的整数倍开始存储。)
原则3、收尾工作:结构体的总大小,也就是sizeof的结果,必须是其内部最大成员的整数倍,不足的要补齐。
(5)、字符与字符串
后续详解。
注:
在双引号括起的字符串中,注释符/*属于字符串的一部分,而在注释中出现的双引号“”又属于注释的一部分。
标签:struct,成员,运算符,对齐,缺陷,陷进,整数倍,结构 From: https://blog.51cto.com/u_6958388/5922956