带有静态局部变量的C99静态内联函数

带有静态局部变量的C99静态内联函数,c,inline,c99,static-members,static-functions,C,Inline,C99,Static Members,Static Functions,如果我在C99标题中写入类似的内容: static inline void f() { static int x = 0; // Do something with x } 是否保证包含此标头的每个模块分别获得f()的实例化和它自己的x的实例化?是的,根据定义,这就是静态的含义。它在标题中这一事实是无关紧要的。从概念上讲,C预处理器为每个.C文件创建一个要编译的文件,就像您自己刚刚(重新)将标题中的所有文本键入.C一样

如果我在C99标题中写入类似的内容:

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

是否保证包含此标头的每个模块分别获得
f()
的实例化和它自己的
x
的实例化?

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