我遇到一种情况,我有一个头文件,并且必须包含在多个文件中。它有一些静态函数原型(prototype)。我想做这样的事情
#ifdef filename.c
static foo(void );
static bar(int );
#endif
这意味着,如果我将其包含在名为 filename.c 的文件中,那么这些函数原型(prototype)就会处于事件状态,而如果包含在其他文件中,它们就会保持安静。
最佳答案
filename.c
是一个相对不常见的符号。除此之外,您需要在 filename.c 文件中显式定义一个符号。喜欢:
#ifdef FILENAME_C_
static foo(void );
static bar(int );
#endif
在你的filename.c
-file
#define FILENAME_C_
您应该更喜欢FILENAME_C_
中的下划线_
版本,它更常见且更易于阅读。
然而,我不明白为什么你只声明这些函数?无论如何,您都需要在 filename.c 文件中定义它们。您想通过此实现什么目的?
关于c - #ifdef in c for filename 用于保护头文件中的静态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15542889/