C99静态内联函数与静态局部变量

时间:2016-11-24 08:57:43

标签: c inline c99 static-members static-functions

如果我在C99标题中写出这样的内容:

static inline void f()
{
    static int x = 0;
    // Do something with x
}

是否保证包含此标头的每个模块都获得f()的单独实例化及其x的实例化?

1 个答案:

答案 0 :(得分:2)

是的,根据定义,这是static的含义。它在标题中的事实是无关紧要的。从概念上讲,C预处理器创建一个文件来编译每个.c文件,就像您刚刚(重新)将标题中的所有文本输入到.c中一样。