C语言预处理操作符】的更多相关文章

在看<深入剖析Nginx>时看见一个非常少见的C语言知识点:预处理操作符. #define conn(x,y) x##y //将子串x和y连接形成新的串 #define tochar(x) #@x //将x用单引号包裹,形成一个const字符 #define tostring(x) #x //将x用双引号包裹,形成一个字符串   参考资料:http://msdn.microsoft.com/en-us/library/wy090hkc.aspx…
在嵌入式系统编程中,不管是内核的驱动程序还是应用程序的编写,都涉及到大量的预处理与条件编译,这样做的好处主要体现在代码的移植性强以及代码的修改方便等特性,因此引入了预处理与条件编译的概念.在C语言的程序中可包括各种以符号#开头的编译指令,这些指令称为预处理命令.预处理命令属于C语言编译器,而不是C语言的组成部分.通过预处理命令可扩展C语言程序设计的环境.   注:该系列内容整理自以下链接. http://blog.csdn.net/dlutbrucezhang/article/details/8…
问题描述:C语言 预处理包括哪些操作 C语言的三种预处理包括:宏定义(#define).文件包含(#include).条件编译(#if.#else.#endif). 对于宏定义的介绍: 宏定义必须写在函数外,其作用域为宏定义起到源程序结束.C语言源程序中允许用一个标识符来表示一个字符串,称为“宏”.被定义为宏的标识符称为“宏名”.在编译预处理时,对程序中所有出现的宏名,都用宏定义中的字符串去代换,这称为宏替换或宏展开. 无参宏的宏名后不带参数.其定义的一般形式为: #define  标识符  字…
[源码下载] 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 预处理命令 输入 输出 示例1.预处理命令cPreprocessor.h #ifndef _MYHEAD_PREPROCESSOR_ #define _MYHEAD_PREPROCESSOR_ #ifdef __cplusplus extern "C" #endif char *demo_cPreproce…
转自C语言预处理运算符 预处理还需要运算符?有没有搞错? ^_^, 没有搞错,预处理是有运算符,而且还不止一个: #(单井号)    -- 字符串化运算符. ##(双井号 )-- 连接运算符 #@               -- 字符化运算符. 接下来我们会分别说明一下他们的用法. 1.字符串化运算符 -- # 用于创建字符串,#运算符后面应该跟一个形参(中间可以有空格或Tab),例如: #define STR(s) #s puts(STR(Here is a Demo)); // 相当于pu…
所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作.预处理是C语言的一个重要功能,它由预处理程序负责完成.当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译. C语言提供了多种预处理功能,如宏定义.文件包含.条件编译等.合理地使用预处理功能编写的程序便于阅读.修改.移植和调试,也有利于模块化程序设计. 被定义为“宏”的标识符称为“宏名”.在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为…
C语言中操作符的优先级大全, 当然c++, Objective-C,大部分语言都试用. 下面是来自The C Programming Language 2th的总结. OperatorsAssociativity(结合性) 1.  () [] -> .      left-> right 2. ! ~ ++ -- + - *(type)sizeof  right->left 3. */%         left-> right 4. + -  left->right 5.…
C语言中点操作符(.)和箭头操作符(->) 点说语法不太准确,许多都称该之为点运算符/操作符,箭头运算符/操作符.但是OC中叫点语法,感觉理解起来还蛮舒服.毕竟基础的C操作符中是 相同点 两个都是二元操作符,其有操作符是成员的名称. 不同点 点操作符左边的操作数是一个“结果为结构”的表达式: 箭头操作符左边的操作数是一个指向结构的指针. 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右   () 圆括号 (表达式)函数名(形参表)   . 成…
例如:#include ,这种以#号开头的命令称为预处理命令. ===C语言宏定义(#define的用法)==== #define 叫做宏定义命令,它也是C语言预处理命令的一种.所谓宏定义,就是用一个标识符来表示一个字符串,如果后面的代码中出现了该标识符,那么就全部替换成指定的字符串. #define N 100 对#define 用法的几点说明 1.宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单粗暴的替换. 2. 宏定义不是说明或语句,在行末不必加分号. 3.…
C语言预处理理论1.头文件包含(1)#include <>和#include ""区别:<>专门用来包含系统提供的头文件(就是系统自带的,不是程序员自己写的),""用来包含自己写的头文件:更深层次来说:<>的话C语言编译器只会到系统指定目录(编译器中配置的或者操作系统配置的寻找目录,譬如在ubuntu中是/usr/include目录,编译器还允许用-I来附加指定其他的包含路径)去寻找这个头文件(隐含意思就是不会找当前目录下),如果…