我在某处阅读(抱歉找不到链接)标题的第一行应该始终是#include保护,因为编译器可以在不打开头文件的情况下看到它。因此,如果已经包含了头文件,则不会再打开该文件以再次关闭它,这会加快构建过程。
但是我总是在每个文件的开头都有一个注释块。所以我的问题是,#include后卫应该在评论栏之前还是之后写?
这种风格更好:
///////////////////////
// Name: code.h
// Author: Me
// Date: dd.mm.yyyy
// Description: This code executes a specific task
///////////////////////
#ifndef CODE_H_
#define CODE_H_
...
#endif
或者这种风格更好:
#ifndef CODE_H_
#define CODE_H_
///////////////////////
// Name: code.h
// Author: Me
// Date: dd.mm.yyyy
// Description: This code executes a specific task
///////////////////////
...
#endif
或者根本不重要?
答案 0 :(得分:4)
根据我的经验和others'
它不是解析和读取花费时间的文件,而是各种优化和代码生成传递
因此,对于大型项目的构建时间,打开一个解析inlucde防护的文件应该可以忽略不计。
我的意思是无法成为该程序的瓶颈!
因此,选择你喜欢的风格,它真的是基于意见。
另一个有趣的评论发现here:
有一次,可能有一两个编译器愚蠢到每次打开文件来检查包含警卫。在这个千年中没有编制的编译器会这样做,因为它可以保存一个文件表并包含警卫并在打开文件之前查阅。
在File-wide include-guards中阅读更多内容。