除了好的做法,我试图让自己编码更轻松。
是否可以制作一个头文件来处理无数的内容,以便源可以只包含一个头?
编辑:有些人正在引用Cocoa。我忘了提到C / C ++编程。它在标签中,但我忘了把它放在这里。
编辑:没关系。看来我带着这个问题踩到了一个蚁丘。经验教训。
答案 0 :(得分:8)
当然有可能,但我不会称之为良好的编程风格。
您将增加源代码依赖性,如果不重新编译所有内容,您将无法重新编译项目的一部分,并且您将忘记依赖于什么的内容。
就个人而言,我会说不要这样做。
答案 1 :(得分:2)
这不值得。
处理#include
指令花费了大量的编译时间,CPU周期和树。如果您不需要它,请不要费心加载它。
答案 2 :(得分:2)
听起来你想要一个precompiled header。 虽然它的缺点是你忘记了哪个源文件依赖于其他外部代码,但预编译头本身可以显着提高编译速度。
减轻上面提到的缺点的一个好方法是避免在预编译头中包含您自己的头文件。这样至少你可以确保你自己的类没有相互依赖的奇怪依赖。
答案 3 :(得分:1)
我会说这取决于你想要达到的目标。如果你为mac os x开发一个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
文件(预编译头)的文件。编译真是太快了。