1

我正在编写取决于是否包含头文件的代码。如果包含该文件,我想要某些附加功能。有没有办法做到这一点,也许用#if?使用 C 顺便说一句

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 回答