1

ヘッダーファイルがインクルードされているかどうかに依存するコードを書いています。ファイルが含まれている場合、特定の追加機能が必要です。おそらく#ifを使用してこれを行う方法はありますか?Cbtwを使用する

4

2 に答える 2

4

そのヘッダーの単なる#defineシンボルであり、#ifdef後で使用します。

header.h
#define HAVE_IPV6

some_file.c
#ifdef HAVE_IPV6
/* code */
#endif
于 2012-05-31T17:24:45.560 に答える
0

C ヘッダーで一般的に使用される手法は、インクルード ガードと呼ばれます。主な目的は、ヘッダー ファイルの複数のインクルードを防ぐことですが、必要に応じて使用することもできます。

インクルード ガードには、特定のヘッダー ファイルに固有の、プロジェクトの各ヘッダー内のプリプロセッサ定数のテストと条件付き設定が含まれます。これを実現するために、各ヘッダーは#ifndef/#endifブロック内にラップされます。

例:

MyHeader1.h

 #ifndef MY_HEADER_1_H
 #define MY_HEADER_1_H

 // header file contents...

 #endif   // MY_HEADER_1_H

MyHeader2.h

 #ifndef MY_HEADER_2_H
 #define MY_HEADER_2_H

 // header file contents...

 #endif   // MY_HEADER_2_H

あなたの場合、コードの他の場所で、特定のヘッダー ファイルを含めるかどうかをテストできるようになりました。#ifdef MY_HEADER_1_H

于 2012-05-31T19:54:18.587 に答える