1. ホーム
  2. objective-c

[解決済み] Objective-Cの#importと#includeの違いは何ですか?

2022-02-19 01:09:57

質問

Objective-Cの#importと#includeの違いは何ですか?また、どちらかを使用した方が良い場合もありますか?一方は非推奨ですか?

以下のチュートリアルを読んでいました。 http://www.otierney.net/objective-c.html#preamble と、#import と#include についての段落が矛盾しているか、少なくとも不明瞭であるように思えます。

どのように解決するのですか?

Objective-Cでは、#includeの改良版として#import指令が追加されました。しかし、改良されているかどうかは、まだ議論の余地がある。#import はファイルが一度だけインクルードされることを保証し、再帰的なインクルードで問題が発生することがないようにします。しかし、ほとんどのまともなヘッダーファイルは、いずれにせよこの問題から自分自身を保護するので、実際にはそれほど大きな利点はありません。

基本的に、どちらを使うかはあなた次第です。私は、Objective-Cのもの(クラス定義など)には#importヘッダーを、必要なものには#include標準Cのものを使うことが多いですね。例えば、私のソース・ファイルの1つは次のようなものです。

#import <Foundation/Foundation.h>

#include <asl.h>
#include <mach/mach.h>