嵌套的include语句便于c/c++编程
Nested include statements for ease of programming c/c++
除了良好的实践,我正试图使编码对我自己来说更容易一点。
是否有可能使头文件处理无数的包含,以便源可以只包含一个头文件?
编辑:你们中的一些人引用Cocoa。我忘了提到C/c++编程。它在标签里,但是我忘了放在这里。
编辑:没关系。问这个问题好像是踩到了蚁丘。教训。当然这是可能的,但我不认为这是一种好的编程风格。
你将增加源代码依赖,你将无法在不重新编译所有内容的情况下重新编译项目的一部分,并且你将无法跟踪哪些依赖于哪些。
我个人建议不要这样做。
不值得。
大量的编译器时间、CPU周期和树花在处理#include
指令上。如果你不需要它,就不要加载它了
听起来你想要一个预编译的头文件。虽然它的缺点是您无法跟踪哪个源文件依赖于其他外部代码,但预编译的头文件本身可以显着提高编译速度。
减轻我上面提到的缺点的一个好做法是避免在预编译的头文件中包含您自己的头文件。这样至少你可以确保你自己的类之间不会有奇怪的依赖关系。
我想说,这取决于你想要实现什么。如果你为mac os x开发一个cocoa应用程序,默认模板会让你在一个头文件中包含所有的cocoa库:
<Cocoa/Cocoa.h>
包括:
#import <Foundation/Foundation.h>
#import <AppKit/AppKit.h>
#import <CoreData/CoreData.h>
包括:#include <CoreFoundation/CoreFoundation.h>
#import <Foundation/NSObjCRuntime.h>
#import <Foundation/NSArray.h>
#import <Foundation/NSAutoreleasePool.h>
#import <Foundation/NSBundle.h>
#import <Foundation/NSByteOrder.h>
#import <Foundation/NSCalendar.h>
#import <Foundation/NSCharacterSet.h>
#import <Foundation/NSError.h>
#import <Foundation/NSException.h>
#import <Foundation/NSFileHandle.h>
#import <Foundation/NSFileManager.h>
#import <Foundation/NSFormatter.h>
#import <Foundation/NSHashTable.h>
#import <Foundation/NSHTTPCookie.h>
#import <Foundation/NSHTTPCookieStorage.h>
#import <Foundation/NSNotification.h>
#import <Foundation/NSNotificationQueue.h>
#import <Foundation/NSNull.h>
#import <Foundation/NSNumberFormatter.h>
#import <Foundation/NSObject.h>
etc...
你最终包括超过200个头,嵌套在(至少)4个级别。它们包括通过.pch
文件(预编译头文件)的所有内容。
相关文章:
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 模板元编程:如何将参数包组合成新的参数包
- Qt Q串行端口未编程设备未关闭
- 模板元编程 - 尝试实现维度分析
- 我是编程新手
- C++编程从外部文本文件定义数组大小
- 了解算法的性能差异(如果以不同的编程语言实现)
- 使用 Gtkmm 以编程方式选择 Gtk::TextView 中的文本
- 如何将可变参数模板转换为多个单个模板?(C++竞争编程调试模板)
- 使用命名空间正确编程
- C++编程:运算符重载中的引用如何工作?
- Arduino 模块化编程与全局和设置
- C++ 运算符修改/元编程策略,用于不那么冗长的语法
- 在没有管理员权限的情况下,在 c++ 中以编程方式将程序添加到启动
- 如何以编程方式将音频从任何录制设备路由到任何播放设备
- 试图修复一个错误,该错误不会让我开始编程其余部分
- C++模板编程设计问题 - 根据输入文件返回不同的类型
- Frank Luna 在他的书"使用 DirectX12 进行 3D 游戏编程"的介绍中盒子示例的问题
- 如何使用可变参数模板类使用模板元编程获得最大值