头文件重复定义的问题&宏定义
来源:互联网 发布:巴伐利亚级战列舰知乎 编辑:程序博客网 时间:2024/05/21 15:02
1. 头文件重复定义的问题
头文件包含其实是一件很烦琐的工作,不但我们看着累,编译器编译的时候也很累,再加上头文件中常常出现的宏定义。感觉各种宏定义的展开是非常耗时间的,远不如自定义函数来得速度。我仅就不同头文件、源文件间的句则结构问题提出两点原则,仅供参考:
第一个原则应该是,如果可以不包含头文件,那就不要包含了。这时候前置声明可以解决问题。如果使用的仅仅是一个类的指针,没有使用这个类的具体对象(非指针),也没有访问到类的具体成员,那么前置声明就可以了。因为指针这一数据类型的大小是特定的,编译器可以获知。
第二个原则应该是,尽量在CPP文件中包含头文件,而非在头文件中。假设类A的一个成员是是一个指向类B的指针,在类A的头文件中使用了类B的前置声明并编译成功,那么在A的实现中我们需要访问B的具体成员,因此需要包含头文件,那么我们应该在类A的实现部分(CPP文件)包含类B的头文件而非声明
2. 宏定义
#define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。
该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。
如果一个宏定义太长,一行不 够时,可采用续行的方法。续行是在键人回车符之前先键入符号"\"。注意回车要紧接在符号"\"之后,中间不能插入其它符号。
一个标识符被宏定义后,该标识符便是一个宏名。这时,在程序中出现的是宏名,在该程序被编译前,预处理阶段,先将宏名用被定义的字符串替换,这称为宏替换,替换后才进行编译,宏替换是简单的替换
参考:点击打开链接点击打开链接 点击打开链接 点击打开链接
- 头文件重复定义的问题&宏定义
- Keil头文件重复定义的问题
- 头文件中添加了防止重复包含的宏,依旧报重复定义的问题
- c++ 中头文件重复定义的问题
- C++头文件重复定义问题的处理(转)
- 转 c++ 中头文件重复定义的问题
- C++ 中头文件重复定义的问题
- 防止头文件重复包含的宏定义模板
- 头文件中定义的内敛函数报重复定义
- #ifndef 头文件重复定义
- 头文件重复定义疑问
- 头文件的重复包含和变量的重复定义
- 解决重复包含一个头文件时变量重复定义的问题
- 防止头文件重复包含引起的变量重复定义
- 如何处理C++头文件重复定义问题
- 关于头文件重复包含以及函数重定义问题
- 关于头文件重复包含以及函数重定义问题
- 关于头文件重复包含以及函数重定义问题
- mysqldump Failed to open file 'xxxl', error: 22 on windows os
- 关于AJAX/GET请求乱码的问题
- 用javascript实现观察者模式
- 浅析配置更快的Eclipse方法
- OJ循环——for循环打印图形
- 头文件重复定义的问题&宏定义
- java doc注释中添加超链接,指向某方法
- java.io.FileNotFoundException: ..\lib\commons-el.jar
- Xen占用ttyS0导致Linux下串口不可用
- 如何下载和安装CocoaPods?
- Java集合框架总结(3)——TreeSet类的排序问题
- c++中 const修饰指针的理解与记忆法
- mysql的between的边界问题
- 使用table自带方法和DOM方法操作HTML table的区别