预处理命令
2016-06-15 15:02
246 查看
预处理:通常的编译处理之前,编译程序对程序进行预处理
一、符号# ,##
1.# 是预处理标识符
可以将后面的参数化成字符串
#define PASET(n) "abcdefd"#n
int main()
{
printf("%s",PASET(15));//输出abcdefd15
}
2.##字符串的链接
#define NUM(a,b,c) a##b##c
int main()
{
printf("%d",NUM(1,2,3));//输出123
}
二、常见的预处理命令
1.#define PI 3.1415926 定义变量
#undef PI 撤销定义变量
2.条件预处理,
1) #if MAX>99 控制程序编译的部分
printf("1234");
#else
printf"abcd\n");
#endif
2)#ifdef 如果定义了标识符
#else否则
#endif
3)#ifndef 如果没定义了标识符
#else否则
#endif
三.include 包含头文件
四.#line 修改行号和原文件的名字
#line 2 “8.cpp"
printf("line ID :%d,FILENAME %s",_LINE_ ,_FILE_);
五、其他
1.#error 强制编译程序停止编译,给出提示信息
#error DOS OS isrequired
2.#pragma 参数
1)message 输出一些信息 #pragma message("the OS is windows 2007");
2)argsused 用于函数定义之间,只影响下一个函数,使得警告信息无效
3)startup,exit 设置程序启动之前和结束后要执行的函数
4)once 仅编译一次头文件
5)warning 设定显示警告信息
6)code_seg指定函数存放的代码段,data_seg 指定数据存放的代码段
7)resource 将制定的文件加入工程中
8)saveregs 保证调用huge()命令时不会改变任何寄存器的值
9)hdrstop结束预编译头文件列表
10)hdrfile 保存预编译头文件的文件的名字
一、符号# ,##
1.# 是预处理标识符
可以将后面的参数化成字符串
#define PASET(n) "abcdefd"#n
int main()
{
printf("%s",PASET(15));//输出abcdefd15
}
2.##字符串的链接
#define NUM(a,b,c) a##b##c
int main()
{
printf("%d",NUM(1,2,3));//输出123
}
二、常见的预处理命令
1.#define PI 3.1415926 定义变量
#undef PI 撤销定义变量
2.条件预处理,
1) #if MAX>99 控制程序编译的部分
printf("1234");
#else
printf"abcd\n");
#endif
2)#ifdef 如果定义了标识符
#else否则
#endif
3)#ifndef 如果没定义了标识符
#else否则
#endif
三.include 包含头文件
四.#line 修改行号和原文件的名字
#line 2 “8.cpp"
printf("line ID :%d,FILENAME %s",_LINE_ ,_FILE_);
五、其他
1.#error 强制编译程序停止编译,给出提示信息
#error DOS OS isrequired
2.#pragma 参数
1)message 输出一些信息 #pragma message("the OS is windows 2007");
2)argsused 用于函数定义之间,只影响下一个函数,使得警告信息无效
3)startup,exit 设置程序启动之前和结束后要执行的函数
4)once 仅编译一次头文件
5)warning 设定显示警告信息
6)code_seg指定函数存放的代码段,data_seg 指定数据存放的代码段
7)resource 将制定的文件加入工程中
8)saveregs 保证调用huge()命令时不会改变任何寄存器的值
9)hdrstop结束预编译头文件列表
10)hdrfile 保存预编译头文件的文件的名字
相关文章推荐
- 简单快捷好用的vim配置和终端配置推荐
- java MVC设计模式
- .NET,Cookie,写Cookie,取Cookie
- 每个程序员都应该掌握的6个惊讶的软技能
- C++程序设计语言练习7.8 二维数组操作
- 欢迎使用CSDN-markdown编辑器
- HDFS数据迁移解决方案之DistCp工具的巧妙使用
- thread_Timer(线程中定时器)
- node.js npm 配置相关
- 贪心算法 最优装载问题
- C#网络编程参考博客
- StringUtils类
- iOS应用内跳转系统设置相关界面的方法
- SpringMVC源码 HandlerMapping和HandlerAdapter(3)
- 忘记Ubuntu密码的解决方法和遇到的问题
- Session验证码和购物车
- Java基础语法
- 没有前九条的第十条编程规则:Greenspun's tenth rule
- 【工作杂记】一次修改表字段名操作导致的报表缺失了2个小时的数据
- 动态库*.so制作-linux