C++编程规范之24:总是编写内部#include保护符,绝不要编写外部#include保护符
2013-12-20 20:08
429 查看
摘要:
为头文件添加保护:在所有头文件中使用带有唯一名称的包含保护符(#include guard),防止无意的多次包含。
在编写程序的头文件的时候,要注意每个头文件都应该用内部包含保护符来进行保护,以避免在多次包含时重新定义。例如在下面的例子中对于头文件foo.h应该用包含保护符进行保护。
这里不得不说内部包含保护符和外部包含保护符了,内部包含保护符就是上面代码中的形式,当多次使用#include “foo.h”,foo.h中的内容也只会使用一次。而外部包含保护符是另外一种形式,如下面代码所示:
由于外部包含保护符经常可能会忘记写,容易被误用,因此不推荐使用。要尽量使用内部包含保护符。
在使用包含保护符的时候要遵循以下规则:
1.保护符使用唯一名称。确保名称至少在你的应用程序中是唯一的。
2.不要自作聪明。不要在受保护部分的前后防止代码或者注释,要谨遵上面的标准形式。
为头文件添加保护:在所有头文件中使用带有唯一名称的包含保护符(#include guard),防止无意的多次包含。
在编写程序的头文件的时候,要注意每个头文件都应该用内部包含保护符来进行保护,以避免在多次包含时重新定义。例如在下面的例子中对于头文件foo.h应该用包含保护符进行保护。
#ifndefFOO_H_INCLUDED_ #defineFOO_H_INCLUDED_ //....文件内容..... #endif
这里不得不说内部包含保护符和外部包含保护符了,内部包含保护符就是上面代码中的形式,当多次使用#include “foo.h”,foo.h中的内容也只会使用一次。而外部包含保护符是另外一种形式,如下面代码所示:
#ifndefFOO_H_INCLUDED_ #include"foo.h" #defineFOO_H_INCLUDED_ #endif
由于外部包含保护符经常可能会忘记写,容易被误用,因此不推荐使用。要尽量使用内部包含保护符。
在使用包含保护符的时候要遵循以下规则:
1.保护符使用唯一名称。确保名称至少在你的应用程序中是唯一的。
2.不要自作聪明。不要在受保护部分的前后防止代码或者注释,要谨遵上面的标准形式。
相关文章推荐
- C++编程规范 编程风格 学习 (5) --总是编写内部#include保护符,绝不要编写外部#include保护符
- win10配置JDK输入javac总是显示不是内部或外部命令
- 内部或外部命令
- Node.js学习笔记【1】入门(服务器JS、函数式编程、阻塞与非阻塞、回调、事件、内部和外部模块)
- 'telnet' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- python 不是内部或外部命令
- JAVA编写 将阿拉伯数字转换成中文大写(不要Script的)
- cmd中用PING命令时,出现'Ping'不是内部或外部命令......
- 总是在 COleDispatchDriver::ReleaseDispatch() 内部 m_lpDispatch = NULL; 处触发异常
- win7 64位“python 不是内部或外部命令”解决办法
- "mysql"不是内部或外部命令,也不是可运行的程序 处理方法
- hive内部表和外部表的区别
- overwrite在hive内部表及外部表特性
- win7下ping不是内部或外部命令
- 'xcopy' 不是内部或外部命令,也不是可运行的程序 不知道为什么 每次输入android命令都会出现!
- [New Portal]Windows Azure Virtual Machine (18) Azure Virtual Machine内部IP和外部IP
- cmd下输入命令,控制台提示:“不是内部或外部命令,也不是可运行的程序或批处理文件”
- 连载:编写高效代码(9) 减少处理器不擅长的操作——不要逼我做我不喜欢的事情
- 丁洪波 -- 不要“ 总是拿着微不足道的成就来骗自己”
- Android Environment.getExternalStorageDirectory() 获取的是内部存储还是外部存储? - z