11

重複の可能性:
Objective-C の #import と #include の違いは何ですか?

違いは何ですか

#include< >
#include" "

#import< >
#import" "
4

4 に答える 4

15

ディレクティブはの#import改良版です#include#import再帰的なインクルードで問題が発生しないように、ファイルが一度だけインクルードされるようにします。

#import ""最初にプロジェクト フォルダーのヘッダーをチェックしてから、システム ライブラリに移動し、#import<>システム ヘッダーのチェックを行います。理論的には、場所はコンパイラで定義されており、特定のプラットフォームでは異なる方法で実装できます。

于 2012-11-06T11:43:43.550 に答える
3

を使用する場合#import、ヘッダー インクルード ガードは不要です。それ以外の場合は、のようなもの#includeです。

C および C++ ファイルに見られるヘッダー インクルード ガード:

#ifndef HGUARD_MONHeader_h
#define HGUARD_MONHeader_h

...header contents...

#endif
于 2012-11-06T11:42:15.843 に答える
3

import は include のスーパー セットであり、ファイルが 1 回だけ含まれるようにします。これにより、再帰的な包含を回避できます。"" と <> について。"" ローカル ディレクトリで検索し、<> はシステム ファイルに使用されます。

于 2012-11-06T11:49:00.547 に答える
2

#import ディレクティブは、#include の改良版として Objective-C に追加されました。ただし、それが改善されるかどうかは、まだ議論の問題です。#import は、再帰的なインクルードで問題が発生しないように、ファイルが一度だけインクルードされることを保証します。ただし、ほとんどの適切なヘッダー ファイルはいずれにせよ、これに対して自身を保護するため、それほどメリットはありません。

Objective-C の #import と #include の違いは何ですか? :

#include および #import は、プリプロセッサ* がファイルを読み取り、それを出力に追加することを要求します。#include と #import の違いは、

#include を使用すると、同じファイルを何度も含めることができます。#import は、プリプロセッサがファイルを 1 回だけインクルードすることを保証します。C プログラマーは #include を使用する傾向があります。Objective-C プログラマーは #import を使用する傾向があります。

* Objective-C でのファイルのコンパイルは、2 つのパスで行われます。まず、
プリプロセッサがファイル全体を処理します。プリプロセッサからの出力は、実際のコンパイラに入ります。

于 2012-11-06T11:43:23.630 に答える