标签: c inline c99 static-members static-functions
如果我在C99标题中写出这样的内容:
static inline void f() { static int x = 0; // Do something with x }
是否保证包含此标头的每个模块都获得f()的单独实例化及其x的实例化?
f()
x
答案 0 :(得分:2)
是的,根据定义,这是static的含义。它在标题中的事实是无关紧要的。从概念上讲,C预处理器创建一个文件来编译每个.c文件,就像您刚刚(重新)将标题中的所有文本输入到.c中一样。
static
.c