如何在C中进行合格导入?

时间:2013-10-02 17:00:32

标签: c import

假设我有一个包含一些相关数据结构的头文件DS.h。

A

B(并且重要的是B以A表示)

假设我想写另一个文件Imp.c,它需要A而不是B.有没有办法让Imp.c导入只有A而不是B?

一种解决方案,我想有两个文件:DSA.h和DSB.h;但是,我担心如果Imp2.c同时需要数据结构B和Imp.c,那么由于重新定义A,会出现某种错误。

2 个答案:

答案 0 :(得分:0)

您可以使用预编译器指令

#ifndef _FNAME_H  //If the compiler has not yet defined the variable
                  //_FNAME_H then define the functions in the header, else
                  //we do nothing
#define _FNAME_H

.... //Put definitions for the header file in here

#endif

这将停止对函数/变量的任何重新定义。另请参阅包含警卫here

的部分

答案 1 :(得分:0)

您可以在头文件中定义宏,并使用.c文件

设置该宏
#if USE_A
// A structure
#elif USE_B
// B structure
#endif