答案 0 :(得分:5)
static
应用于函数意味着该函数具有内部链接。即只能在此文件中访问它。换句话说,它有文件范围。无论您是在另一个函数内部还是在所有函数之外声明函数,此链接都适用。
现在,如果您将static
关键字应用于其他块/函数中的函数声明,从语义上讲,则您试图限制范围该特定块/函数的函数违反了声明static
函数的语言规则,无论其声明位置如何,都应具有文件范围。
因此,标准可能禁止此类声明。
PS :最新C11标准中30
中的脚注6.2.3
-
函数声明可以包含存储类说明符 static 只有在文件范围内;