C语言的零长数组
阅读数:167 评论数:0
跳转到新版页面分类
C/C++
正文
struct buffer
{
int data_len; //长度
char data[0]; //起始地址
};
在这个结构中, data是一个数组名, 但该数组没有元素; 该数级的真实地址紧随结构体buffer之后, 而这个地址就是结构后面数组的地址, (如果给这个结构体分配的内容大于这个结构体实际大小,后面多余的部分就是这个data的内容), 这种声明方法可以巧妙的实现C语言里的数组扩展.
相关推荐
在一个多线程程序里,默认情况下,只有一个errno变量供所有的线程共享。在一个线程准备获取刚才的错误代码时,该变量很容易被另一个线程中的函数调用所改变。类似的问题还存在于fputs之类的函数中,
修饰变量的声明
例如:
若a.c中需要用b.c中的变量 int v,可以在a.c中声明extern int v,然后就可以引用变量v。能够被其他模块extern引用到的变量通常是全局变量。
还有一点是
第1章 认识对象
1.面向对象分析(object-oriented analysis,OOA)的主要任务是分析问题域中的对象、对象之间的关系,然后构造出该问题域的分析模型。分析
C++标准每5年会有一个新版本,1998年的C++98、2003年的C++03、2007年的C++TR1、2011年的C++11.
转换操作符
static_ca
组织和策略问题第0条 不要拘泥于小节(了解哪此东本西不应该标准化)
编程规范不应施加个人喜好或者过时的做法。第1条 在高警告级别干净利落地进行编译