C中的以下声明之间有什么区别?
static int foo(){}
int static foo(){}
据我所知,第一种格式在教科书中使用和订阅,而第二种格式似乎也可以使用。声明是否相同?
答案 0 :(得分:10)
它们是相同的,但第一种形式是首选:
(C99,6.11.5p1)“在声明中声明说明符开头之外的存储类说明符的位置是一个过时的功能”
答案 1 :(得分:2)
当您运行这些功能时,您将收到类似"的错误。 foo的静态声明遵循非静态声明"。
在C中以这种方式使用静态是不正确的,因为静态函数仅在您创建的文件中可见