走马观花ANSI C标准-类型表示
类型表示(representation of types) 1、一般规则 a) 除了位域(bit field)之外的对象都是由一个或多个相邻序列字节组成的,这些字节的个数(number)、次序(order)和编码方式或是显式说明的,或是实现定义的。 b) 存储在非符号位域(unsigned bit field)和unsigned char类型对象中的值应该用纯二进制表示(pure binary n...
类型表示(representation of types) 1、一般规则 a) 除了位域(bit field)之外的对象都是由一个或多个相邻序列字节组成的,这些字节的个数(number)、次序(order)和编码方式或是显式说明的,或是实现定义的。 b) 存储在非符号位域(unsigned bit field)和unsigned char类型对象中的值应该用纯二进制表示(pure binary n...
翻看以前的一次jjhou的“高阶C”课程的ppt,突然想到今天指导新员工时,她犯的关于参数传递方面的错误,就想简单分析一下。 一、现象和经验 规则:任何时候你想在函数内修改某个外面的变量值,并影响Caller,你应该传递该变量的地址进去。如果是指针变量,也不例外。 a) 反例1 void test(int a) { a = a + 10; } int main() { int cnt = 0;...
今天是牛郎和织女见面的日子,而我的织女因学校放假早已回家去了,剩下我这个孤独的牛郎只能“胡思乱想”,遂有了这篇blog。^\_^ 感悟一:今早早起,翻来覆去睡不着,想起昨晚和一大学哥们的谈话,他曾经和老外交流过,老外的想法是“中国人总是把自己的一辈子都想好,然后在按部就班的去工作生活;老外则是走一步算一步。”,对照自己最近的想法,好像有些不谋而合,这个老外挺有思想。 感悟二:继续翻来覆去,突然想到...
部门最近在进行C培训,由于有一个新员工需要我来指导,所以看了一下培训用的ppt,了解一下新员工的学习进度,恰看到ppt中有关“如何读懂复杂C声明”的章节。遂想起来自己在看《C专家编程》时,这块儿看得并不是很深刻,万一新员工问到我这块儿…,我不能打没有准备之仗,遂恶补之。 复杂的C声明一般被认为不是很好的编程习惯,当然也就不推荐使用。但是在读很多前辈遗留的代码时,又不得不面对这一问题。知道总比不知道...
在最近的项目中,我们涉及到了“内存对齐”技术。对于大部分程序员来说,“内存对齐”对他们来说都应该是“透明的”。“内存对齐”应该是编译器的“管辖范围”。编译器为程序中的每个“数据单元”安排在适当的位置上。但是C语言的一个特点就是太灵活,太强大,它允许你干预“内存对齐”。如果你想了解更加底层的秘密,“内存对齐”对你就不应该再透明了。 一、内存对齐的原因 大部分的参考资料都是如是说的: 1、平台原因(移...