在评论块之前或之后#include guard?

时间:2017-11-23 09:44:27

标签: c++ performance compilation header-files include-guards

我在某处阅读(抱歉找不到链接)标题的第一行应该始终是#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

或者根本不重要?

1 个答案:

答案 0 :(得分:4)

根据我的经验和others'

  

它不是解析和读取花费时间的文件,而是各种优化和代码生成传递

因此,对于大型项目的构建时间,打开一个解析inlucde防护的文件应该可以忽略不计。

我的意思是无法成为该程序的瓶颈

因此,选择你喜欢的风格,它真的是基于意见。

另一个有趣的评论发现here

  

有一次,可能有一两个编译器愚蠢到每次打开文件来检查包含警卫。在这个千年中没有编制的编译器会这样做,因为它可以保存一个文件表并包含警卫并在打开文件之前查阅。

File-wide include-guards中阅读更多内容。