任何清理“标题意大利面”的推荐做法,这会导致极其严重的后果
编译时间慢(Linux/Unix)?
GCC 中是否有相当于“#pragma Once”的东西?
(发现与此相关的冲突消息)
Thanks.
假设您熟悉“包含防护”(#ifdef 在标头开头......),加快构建时间的另一种方法是使用外部包含防护。
它在“大规模C++软件设计 http://vig.pearsoned.com/store/product/1,1207,store-15080_isbn-0201633620,00.html“。这个想法是,经典的包含防护与#pragma一次不同,不会让你从第二次开始就忽略头文件所需的预处理器解析(即它仍然需要解析并查找包含防护的开始和结束) . 使用外部包含防护,您可以将#ifdef 放置在#include 行本身周围。
所以它看起来像这样:
#ifndef MY_HEADER
#include "myheader.h"
#endif
当然,在 H 文件中你有经典的包含保护
#ifndef MY_HEADER
#define MY_HEADER
// content of header
#endif
这样,预处理器甚至不会打开/解析 myheader.h 文件,并且它可以在大型项目中为您节省大量时间,特别是当头文件位于共享远程位置时(有时会这样做)。
再说一次,这一切都在那本书里。哈
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)