Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 嵌套的include语句便于c/c和x2B编程+;_C++_C_Header_Include - Fatal编程技术网

C++ 嵌套的include语句便于c/c和x2B编程+;

C++ 嵌套的include语句便于c/c和x2B编程+;,c++,c,header,include,C++,C,Header,Include,撇开良好的实践不谈,我正试图让自己的编码变得更容易一点 有没有可能让一个头文件处理无数的包含,这样一个源文件就可以只包含一个头文件 编辑:你们中的一些人正在引用Cocoa。我忘了提到C/C++编程。它在标签里,但我忘了放在这里 编辑:没关系。我提出这个问题似乎有点措手不及。吸取的教训。当然这是可能的,但我不认为这是一种好的编程风格 您将增加源代码依赖性,在不重新编译所有内容的情况下,您将无法重新编译项目的一部分,并且您将无法了解什么依赖于什么 就个人而言,我会说不要这样做。当然这是可能的,但我不

撇开良好的实践不谈,我正试图让自己的编码变得更容易一点

有没有可能让一个头文件处理无数的包含,这样一个源文件就可以只包含一个头文件

编辑:你们中的一些人正在引用Cocoa。我忘了提到C/C++编程。它在标签里,但我忘了放在这里


编辑:没关系。我提出这个问题似乎有点措手不及。吸取的教训。

当然这是可能的,但我不认为这是一种好的编程风格

您将增加源代码依赖性,在不重新编译所有内容的情况下,您将无法重新编译项目的一部分,并且您将无法了解什么依赖于什么


就个人而言,我会说不要这样做。

当然这是可能的,但我不认为这是一种好的编程风格

您将增加源代码依赖性,在不重新编译所有内容的情况下,您将无法重新编译项目的一部分,并且您将无法了解什么依赖于什么

就我个人而言,我会说不要这样做。

这不值得

大量编译器时间、CPU周期和树用于处理
#include
指令。如果你不需要它,不用费心去加载它。

它不值得


大量编译器时间、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
文件(预编译头)发送的所有消息。编译起来非常快。

我认为这取决于你想要实现什么。如果您为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
文件(预编译头)发送的所有消息。编译起来真是太快了。

听起来你想要一个新的。 虽然它的缺点是您无法知道哪个源文件依赖于其他外部代码,但预编译头本身可以显著提高编译速度

缓解我上面提到的缺点的一个好做法是避免在预编译头中包含您自己的头。这样至少可以确保您自己的类彼此之间没有奇怪的依赖关系。

听起来您想要一个。 虽然它的缺点是您无法知道哪个源文件依赖于其他外部代码,但预编译头本身可以显著提高编译速度


缓解我上面提到的缺点的一个好做法是避免在预编译头中包含您自己的头。这样至少可以确保您自己的类彼此之间没有奇怪的依赖关系。

当然,有办法!但是为什么要放弃模块化呢?总的来说,这是个坏主意。它以大量的代码结束,间接地包含了它不需要的东西。@Dolphiniac:你应该像关心你的项目一样关心测试。测试使您免于对重构代码的恐惧,而重构代码则使您有机会保持代码干净。注意测试的设计就像注意程序的设计一样。@Dolphiniac:好吧,也许我的前提有点错误,在仔细阅读“练习”部分之前,我匆忙写了一篇评论。在这种情况下,你不会把它交付给任何人,也不会把它作为你要交付的程序的单元测试,所以。。。由你决定。但是,为什么不坚持实践好的原则,即使你不一定要这么做呢?这只会让你更自然地遵循它们。我想知道是否有一个工具可以简化
#包括这样的
语句?当然,有办法!但是为什么要放弃模块化呢?总的来说,这是个坏主意。它以大量的代码结束,间接地包含了它不需要的东西。@Dolphiniac:你应该像关心你的项目一样关心测试。测试使您免于对重构代码的恐惧,而重构代码则使您有机会保持代码干净。注意测试的设计就像注意程序的设计一样。@Dolphiniac:好吧,也许我的前提有点错误,在仔细阅读“练习”部分之前,我匆忙写了一篇评论。在这种情况下,你不会把它交付给任何人,也不会把它作为你要交付的程序的单元测试,所以。。。由你决定。但是,为什么不坚持实践好的原则,即使你不一定要这么做呢?这只会让你更自然地遵循它们。嗯,嗯,嗯,我想知道是否有一种工具可以简化
#包括这样的
语句?那么,请允许我重写一下。假设我在做网络编程。小型测试用例