c++学习之--关于编译预处理
2013-11-17 15:30
204 查看
文件包含
在一个源程序中可用“文件包含”(include)预编译处理命令将另一个源程序文件的全部内容包含进来。(include)命令的格式为:
#include”文件名”
或
#include<文件名>
1.关于用<>和””的区别用<>表示直接从c++编译器指定的目录include查找,而用双引号括起来的文件名表示先从当前目录查找,若找不到再到编译器指定的目录include查找。通常,包含用户自定义的文件用双引号,而包含c++编译器预定义的文件用<>。为了便于文件包含允许在文件名前面加上路径,例如:
#include “c:\\my\\myf.h”
2,包含文件的扩展名推荐用.h(head)头文件;一个include命令只能包含一个指定文件,若要包含多个文件请使用多个include命令;用包含文件的内容替换include命令行时,是在一个临时文件中进行的,并不改变原文件的内容;include命令可以出现在程序的任何地方,通常放在程序的开头。
宏
分为带参数的宏和不带参数的宏
宏定义用#define实现,使用宏的优点是见名知意,简化书写,方便修改。
但是宏只是做简单替换,不做任何的计算。
条件编译
条件编译分为两类:传统条件编译和现代条件编译,defined是一个预处理运算符,用于判断标示符是否是宏名使用形式是:
: defined(标示符) 或 defined
标示符
现代条件编译 和 传统条件编译
#if !defined(_MM) #ifndef_MM
#define _MM #define_MM
#endif #endif
条件编译命令可以减小目标代码长度,主要用于设计通用程序,调试程序等等。
在一个源程序中可用“文件包含”(include)预编译处理命令将另一个源程序文件的全部内容包含进来。(include)命令的格式为:
#include”文件名”
或
#include<文件名>
1.关于用<>和””的区别用<>表示直接从c++编译器指定的目录include查找,而用双引号括起来的文件名表示先从当前目录查找,若找不到再到编译器指定的目录include查找。通常,包含用户自定义的文件用双引号,而包含c++编译器预定义的文件用<>。为了便于文件包含允许在文件名前面加上路径,例如:
#include “c:\\my\\myf.h”
2,包含文件的扩展名推荐用.h(head)头文件;一个include命令只能包含一个指定文件,若要包含多个文件请使用多个include命令;用包含文件的内容替换include命令行时,是在一个临时文件中进行的,并不改变原文件的内容;include命令可以出现在程序的任何地方,通常放在程序的开头。
宏
分为带参数的宏和不带参数的宏
宏定义用#define实现,使用宏的优点是见名知意,简化书写,方便修改。
但是宏只是做简单替换,不做任何的计算。
条件编译
条件编译分为两类:传统条件编译和现代条件编译,defined是一个预处理运算符,用于判断标示符是否是宏名使用形式是:
: defined(标示符) 或 defined
标示符
现代条件编译 和 传统条件编译
#if !defined(_MM) #ifndef_MM
#define _MM #define_MM
#endif #endif
条件编译命令可以减小目标代码长度,主要用于设计通用程序,调试程序等等。
相关文章推荐
- c++学习之--关于程序编译的文章
- c++学习之--关于程序编译
- 菜鸟C++精髓学习笔记--C++程序内部执行过程(预处理、编译、链接过程的作用)
- 关于 TerminateProcess函数 在c++的进程中的学习而发现VS2008的编译安全问题
- C语言与C++中中编译预处理的学习记录
- C++学习体会--预处理,编译过程,连接过程
- C/C++中关于地址、指针和引用变量的学习笔记(五) : 指针
- C++之父元旦专访(8+13个问题,关于C++的学习&使用和未来)(转帖)
- [C++再学习系列] 跨编译单元的对象初始化
- C语言学习4: 函数返回值与传入参数,关于函数值传递和类型隐性转换,变量不同的作用域,static变量,多文件编译例如两个C文件,显示函数调用语句跳转,递归,斐波那契数列,多文件编译相同变量的问题。
- C&C++编译预处理大全
- C++学习笔记之QT/VS编译Qrencode
- 关于NetBeans编译C/C++ 报错(make[2]: mkdir: Command not found)问题解决
- 编译原理学习笔记·关于四种文法的理解以及 如何根据语言描述给出正则式或相应文法
- C/C++编译预处理:宏定义指令、文件包含指令、条件编译指令和特殊符号处理
- 关于学习c++
- [转]一些关于linux下编译C++程序的东西
- 关于gcc编译流程四个步骤的具体分析,预处理、编译、汇编、链接
- 关于sublime 编译C与gc++编译C的一个问题
- 黑马程序员---C语言学习笔记之预处理指令、宏和条件编译