C++ 下面提到的`#import`指令有什么问题?

C++ 下面提到的`#import`指令有什么问题?,c++,c,objective-c,gcc,C++,C,Objective C,Gcc,您将看到以下语句: #导入不是一个设计良好的功能。它需要 头文件,知道它应该只包含一次 这有什么问题?这篇文章非常准确地说明了这个问题:如果您编写的头文件打算与#import(即没有任何include guard/etc)一起使用,那么您希望该头文件的用户使用#import或其他方法来确保该文件只包含一次。如果用户不知道,或者如果标头与不支持#import的编译器一起使用(或者使用该命令执行其他操作),则标头将无法正常工作。而且,特别是在有很多人参与的大型项目中,有一个很好的机会,有一天有人可能

您将看到以下语句:

#导入
不是一个设计良好的功能。它需要 头文件,知道它应该只包含一次


这有什么问题?

这篇文章非常准确地说明了这个问题:如果您编写的头文件打算与#import(即没有任何include guard/etc)一起使用,那么您希望该头文件的用户使用#import或其他方法来确保该文件只包含一次。如果用户不知道,或者如果标头与不支持#import的编译器一起使用(或者使用该命令执行其他操作),则标头将无法正常工作。而且,特别是在有很多人参与的大型项目中,有一个很好的机会,有一天有人可能会意外地将标题包括在内,或者该项目在将来某个时候被移植到另一个编译器。

这篇文章非常准确地说明了这个问题:如果您编写一个标题的目的是将其与#import(即没有任何include-guard/etc)一起使用,然后,您希望该头文件的用户使用#导入或其他方法确保该文件只包含一次。如果用户不知道,或者如果标头与不支持#import的编译器一起使用(或者使用该命令执行其他操作),则标头将无法正常工作。而且,特别是在有很多人参与的大型项目中,很可能有一天有人会意外地包含该标题,或者将来某个时候该项目会被移植到不同的编译器中。

这是一篇有偏见的文章,考虑到源代码,毫不奇怪
#import
早在几年前就为NeXTSTEP设计,从未打算在Objective-C之外进行移植。这是一篇有偏见的文章,考虑到源代码,毫不奇怪
#import
早在几年前就为下一步而设计,从未打算将其移植到Objective-C之外。