C语言预处理条件编译命令总结
指令 | 说明 |
---|---|
#include | 包含一个源代码文件 |
#define | 定义宏 |
#undef | 取消已定义的宏 |
#if | 如果给定条件为真,则编译下面代码 |
#ifdef | 如果宏已经定义,则编译下面代码 |
#ifndef | 如果宏没有定义,则编译下面代码 |
#elif | 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码 |
#endif | 结束一个条件编译块(包括 #if、#ifdef、#ifndef) |
#error | 强制编译程序停止编译 |
#line | 用于改变 __LINE__和__FILE__的内容 |
_WIN32 | Windows 有专有的宏 |
_LINUX _ | LINUX 有专有的宏 |
_FILE _ | 文件名,和#line配合使用 |
_LINE _ | 行数,和#line配合使用 |
简单示例
1、#if/#else(判断是linux还是windows编译)
#include <stdio.h>
int main(){
#if _WIN32
printf("Hello Windows\n");
#elif __linux__
printf("Hello Linux\n");
#else
printf("呸,啥也不是\n");
#endif
return 0;
}
2、#error(在main函数之前执行)
#ifndef __cplusplus
#error sorry,not c
#endif
#include <stdio.h>
int main()
{
printf("Hello,World!");
return 0;
}
3、#line(FILE , LINE 是双下划线)
#include <stdio.h>
#line 100 "test.c" //设置行计数
int main() // line 100
{
// line 101
printf("%s,;line:%d\n",__FILE__,__LINE__); // line102
return 0;
}
(待补充)