预处理命令
参考链接:https://blog.csdn.net/akpe80900/article/details/102070084
预处理命令是什么
预处理语句,预处理语句是以#为起始标记,后面跟上预处理关键词。
预处理功能,例如,宏定义、文件包括、条件编译等
define
语法:
//用来定义宏
#define
使用:
//定义常量
#define MAX_WIDTH 100
//定义宏函数
#define getmax(a,b) a>b?a:b
undef
语法:
//用来取消宏
#undef
使用:
#define MAX_WIDTH 100
#undef MAX_WIDTH
ifdef ifndef
//只有定义所指宏情况下,才被编译
//#ifdef
//与上述相反
#ifndef
用法:
#ifdef MAX_WIDTH
char str[MAX_WIDTH];
#endif
#ifndef MAX_WIDTH
#define MAX_WIDTH 100
#endif
if elif else endif
//#if #elif(即else if) #else
// 判断条件为真时,才被编译
//#endif
// endif为结尾
用法:
#if MAX_WIDTH>200
#undef MAX_WIDTH
#define MAX_WIDTH 200
#elsif MAX_WIDTH<50
#undef MAX_WIDTH
#define MAX_WIDTH 50
#else
#undef MAX_WIDTH
#define MAX_WIDTH 100
#endif
char str[MAX_WIDTH];
pragram
用来配置编译器,本次不过多描述。
include
最常见的预处理命令
//1先在当前目录下寻找,然后再到默认路径下
#include "file"
//2直接在默认路径下找
#include <file>
line
当编译发生错误时,使用#line显示出错信息
#line 1 "assigning variable"
int a?;
报错会显示:"assigning variable", line 1 。
error
中断编译返回一个出错信息。
#ifndef __cplusplus
#error A C++ compiler is required
#endif
这个例子中如果__cplusplus没有被定义就会中断编译过程。
常见的宏
LINE
正在编译行对应源文件的行数
__LINE__
cout << "This is the line number "<< __LINE__;
FILE
被编译源文件的名称
__FILE__
DATA TIME
存储编译开始的日期,“Mmm dd yyyy”格式
__DATA__
存储编译开始的日期,“hh:mm:ss”格式
__TIME__
cplusplus
整数值,所有C++编译器都定义了这个常量为某个值。如果这个编译器是完全遵守C++标准的,它的值应该等于或大于199711L,具体值取决于它遵守的是哪个版本的标准。
__cplusplus
cout << "The compiler gives a "<<"__cplusplus value of "<< __cplusplus;
标签:__,编译,WIDTH,宏篇,MAX,c++,徒步,预处理,define
From: https://www.cnblogs.com/fusio/p/17376701.html