首页 > 其他分享 >C陷进与缺陷(一)

C陷进与缺陷(一)

时间:2022-12-08 17:34:52浏览次数:28  
标签:struct 成员 运算符 对齐 缺陷 陷进 整数倍 结构


(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

相关文章

  • C陷阱与缺陷(二)
    (1)、理解函数声明typedef与函数使用(2)、运算符优先级摘自C语言中文网下表就整理了这些容易出错的情况:这些容易出错的情况,希望读者好好在编译器上调试调试,这样印象会深一......
  • 分享一个你很可能不知道的Java异常实现的缺陷
    前言Java中一个大家熟知的知识点就是异常捕获,try...catch...finally组合,但是很多人不知道这里面有一个关于Java的缺陷,或者说是异常实现的一点不足之处。我这边就通过一......
  • SMT贴片加工回流焊焊接缺陷检查清单
    SMT贴片加工回流焊焊接缺陷检查清单​​贴片加工​​中,回流焊接是SMT贴片工艺流程的末端,一般焊接好之后,需要进行检测焊接品质,将不良PASS掉,以免流入后面工艺流程,造成Z终品质......
  • 怎么判断一个缺陷是前端缺陷还是后端缺陷?
    怎么判断一个缺陷是前端缺陷还是后端缺陷?似乎这个问题看起来应该挺简单的,但是根据我所遇到的问题,有时候遇到的问题看起来是后端缺陷,但其实是前端缺陷。有时候遇到的问题,......
  • 【Java】数据类型隐式判断缺陷修复
    公司之前有一个与第三方团队合作开发的项目,由于过程沟通出现问题,导致整合测试时出现较多问题。其中有一个最经典的就是关于数据类型隐式判断的缺陷修复,追查代码用了2天的时......
  • c#转义的缺陷
    stringjson1="斜杠转义\\这个不需要转义{}双引号转义\"f单引号不需要转义'f";stringjson2=@"反斜杠转义1\双引号不行的";string@stri......
  • 明珠暗投 系统分析和修复利器HijackThis暴缺陷……O20、O21不翼而飞
    endurer原创2007-07-04第1版有一位网友的电脑使用的是WinXP,不小心安装了微软正版增值计划更新程序,现在任务栏右下角出现了一个蓝色五角星符号,感觉不爽,让偶帮助弄掉。这个......
  • 详解支持向量机-探索核函数的优势和缺陷【菜菜的sklearn课堂笔记】
    视频作者:菜菜TsaiTsai链接:【技术干货】菜菜的机器学习sklearn【全85集】Python进阶_哔哩哔哩_bilibili看起来,除了Sigmoid核函数,其他核函数效果都还不错。但其实rbf和pol......
  • 微服务架构的缺陷与挑战
    微服务架构的陷阱服务力度拆分太细 内部复杂度下降,外部复杂度上升服务关系复杂数据一致性,服务影响的点增加团队效率下降 ......
  • leetcode680-验证回文串 II。方法有缺陷,还需要继续琢磨
    680.验证回文串II这个做法就是利用双指针。一个指向第一个字符,一个指向最后一个字符。遇到两个指针指向的字符相同时,一个往前走,一个往后走。如果遇到不相同,那么就看看......