摘要:
何为命名空间?比如结构体的成员名和变量名不在同一命名空间中,但枚举的成员名却和变量名在同一命名空间中,所以会出现命名冲突。命名空间(namespace) 表示标识符(identifier)的上下文(context)。 一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。 这样,在... 阅读全文
2015年11月21日
摘要:
一、常年被人误认为函数。sizeof 是关键字不是函数,其实就算不知道它是否为32 个关键字之一时,我们也可以借助编译器确定它的身份。看下面的例子: int i=0;A),sizeof(int); B),sizeof(i); C),sizeof int; D),sizeof i;毫无疑问,32 ... 阅读全文
摘要:
int (*(*fp)(void *))[10]; //这个类型用typedef分解出来// 第一步:此指针是一个指向函数T1的指针typedef int (*T1(void *))[10];T1 *fp;// 第二步:T1 是一个函数,返回值是T2,参数为(void *)typedef int (... 阅读全文
摘要:
vim中大小写转化的命令是gu或者gU形象一点的解释就是小u意味着转为小写;大U意味着转为大写.剩下的就是对这两个命令的限定(限定操作的行,字母,单词)等等整篇文章大写转化为小写打开文件后,无须进入命令行模式。键入:ggguG解释一下:ggguG分作三段gg gu Ggg=光标到文件第一个字符gu=... 阅读全文
摘要:
typedef是一个我们常常会用到的关键字,而这个关键字有许多陷阱或者说许多不为我们深入理解的地方。很多书上都是很简单地一笔代过,并没有真正地让我们理解这个关键字。本文对其进行详细地说明。综合网络上找到的资料对其进行分析,这其中会涉及到一些其他c方面的内容(比如指针,指向函数的指针,编译时候数据类型... 阅读全文
摘要:
C函数要在程序中用到以下这些宏:void va_start( va_list arg_ptr, prev_param );type va_arg( va_list arg_ptr, type );void va_end( va_list arg_ptr ); va_list:用来保存宏va_star... 阅读全文
摘要:
函数式宏定义经常写成这样:#define device_init_wakeup(dev, val) \ do { \ device_can_wakeup(dev) = !!(val); \ device_set_wak... 阅读全文
摘要:
打开文件,打开文件一定要成对写,养成好习惯很重要。比如 fopen()fclose fopen()/* fopen() */FILE *fopen(const char *path, const char *mode);FILE *fdopen(int fd, const char *mode);F... 阅读全文
摘要:
errno是个全局的int型变量,当调用一个系统函数时不管成功不成功都有可能改变errno的值。但只有不成功时errno的值才是有意义的。如果要真的想用errno进行多次打印,刚可以先将其缓存一下。下面的例子:#include #include #include #include int main(... 阅读全文