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

C99 static inline function with static local variable

如果我用 C99 写这样的东西 header:

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

是否保证包含此 header 的每个模块都获得单独的 f() 实例化和自己的 x 实例化?

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