c中的#ifdef用于保护头文件中的静态函数的文件名

时间:2013-03-21 08:48:48

标签: c header-files

我有一种情况,我有一个头文件,必须包含在多个文件中。它有一些静态函数原型。我想做这样的事情

#ifdef filename.c 
 static foo(void );
 static bar(int );
#endif

这意味着如果我将其包含在名为filename.c的文件中,那么这些函数原型是活动的,如果包含在其他文件中,则它们是安静的。

1 个答案:

答案 0 :(得分:0)

filename.c是一个相对不常见的符号。除此之外,您还需要在filename.c文件中明确定义一个符号。像:

#ifdef FILENAME_C_ 
 static foo(void );
 static bar(int );
#endif

在您的filename.c - 文件

#define FILENAME_C_

您应该更喜欢_中的下划线FILENAME_C_ - 版本,它更常见且更易于阅读。 但是,我不明白你为什么只宣布这些功能?您还需要在filename.c文件中定义它们。你想用这个来实现什么目标?