摘要:C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏 的使用问题做了简单总结。 关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后 在其左右各加上一个双引号。比如下面代码中的宏: #define WARN_IF(EXP) ...
阅读全文
摘要:在上文中,我们已经熟悉了文件描述符的相关知识,这里再介绍一下文件描述符的拷贝。Unix系统除了允许属于两个独立进程的不同文件描述符指向同一文件表项外,还允许同一进程的不同文件描述符指向同一个文件表项。这一特点被称为文件描述符的拷贝,可以通过使用 dup函数或dup2函数来实现。它们的定义是: #include int dup(int fd); ...
阅读全文
摘要:在软件开发领域,Unix环境高级程序设计是用途十分广泛的一种编程技术。笔者愿将个人对此的学习成果,分期总结整理成系列文章与有志深造者共享。本文是第二篇(上),主要阐述与Unix文件系统相关的编程。 Unix环境高级程序设计入门 ----文件系统的...
阅读全文
摘要:1#define BTI_MSK(bit) (1 << (bit))2#define BIT_SET(x,bit) ((x) |= BTI_MSK (bit))3#define BIT_CLR(x,bit) ((x) &= ~BTI_MSK (bit))4#define BIT_TST(x,bit) ((x) & BTI_MSK (bit))5
阅读全文