C语言-08-预处理器
2016-02-16 10:28
288 查看
C预处理器,C Preprocessor简称CPP。C预处理器不是编译器的一部分,它是一个单独的文本替换工具,指示编译器在实际编译之前需要完成的工作。
包含头文件
#define
宏定义
#undef
取消宏定义
#ifdef
如果定义
#ifndef
如果没有定义
#if
如果
#else
否则
#elif
否则如果
#endif
结束判断
#error
当遇到标准错误时,输出错误信息
#pragram
使用标准化方法,向编译器发布特殊的指令到编译器中
' ',定义多行的宏定义
字符串常量化运算符
‘#’,将一个宏的参数转换成字符串常量
标记粘贴运算符
‘##’,在宏定义中将两个独立的标记合并成一个标记
defined() 运算符
判断一个标识符是否用#define定义过
常见的预定义宏
DATE
当前日期,“MMM DD YYYY”。使用方法:
TIME
当前时间,“HH:MM:SS”
FILE
当前文件名
LINE
当前行号
STDC
当编译器为ANSI标准编译时,则定义为1
常用的预处理器指令
#include包含头文件
#define
宏定义
#undef
取消宏定义
#ifdef
如果定义
#ifndef
如果没有定义
#if
如果
#else
否则
#elif
否则如果
#endif
结束判断
#error
当遇到标准错误时,输出错误信息
#pragram
使用标准化方法,向编译器发布特殊的指令到编译器中
ANSI C预定义宏
宏延续运算符' ',定义多行的宏定义
#define MAX(a, b) \ a > b ? a : b
字符串常量化运算符
‘#’,将一个宏的参数转换成字符串常量
#define SUM(a, b) \ printf(#a " + " #b " = %d\n", (a) + (b))
标记粘贴运算符
‘##’,在宏定义中将两个独立的标记合并成一个标记
// 定义 #define VALUE(v) \ printf("a%d = %d\n", v, a##v) // 使用 int a1 = 3; VALUE(1);
defined() 运算符
判断一个标识符是否用#define定义过
#if !defined(DEBUG) // TODO: #endif
常见的预定义宏
DATE
当前日期,“MMM DD YYYY”。使用方法:
printf("Date :%s\n", __DATE__ );
TIME
当前时间,“HH:MM:SS”
printf("Time :%s\n", __TIME__ );
FILE
当前文件名
printf("File :%s\n", __FILE__ );
LINE
当前行号
printf("LINE :%s\n", __LINE__ );
STDC
当编译器为ANSI标准编译时,则定义为1
printf("STDC :%s\n", __STDC__ );
相关文章推荐
- C++ 笔记
- C语言打印杨辉三角示例汇总
- c语言入门之项目1.3——指针变量
- C语言+win32api写窗体应用程序
- C++Primer第5版学习笔记(四)
- C++实现在文本中找出某个单词的位置信息
- C++ 中const和复合类型
- unordered学习(c++11)
- A*搜索四方向寻路 C++代码实现
- C++派生类的构造函数和析构函数
- How to define a template class in a .h file and implement it in a .cpp file
- c语言:∑k(k取[1,100])+∑k^2(k取[1,50])+∑1/k(k取[1,10])的和
- BGL_polyhedron_3/normals.cpp analysis
- 1644 免费馅饼 题解(c++)
- 1644 免费馅饼 题解(c++)
- cppcheck用法
- Generic Programming in C++
- leetcode - Maximum Product of Word Lengths
- c语言:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
- C语言实现线性链表的19个功能