什么是C中的“静态”函数?

问题是关于C函数,而不是C++ static 方法,如注释中所述。

我知道什么是静态变量,但什么是静态函数

为什么如果我声明一个函数,比如说void print\u matrix,比如说a.c(不含a.h),并包含“a.c”——我得到了“print\u [email protected]……)已经在a.obj中定义了,但如果我声明它为静态void print\u matrix,它就编译了

更新只是为了澄清问题——正如你们中的许多人指出的那样,我知道包括.c是不好的。我只是暂时清除main.c中的空间,直到我更好地了解如何将所有这些函数分组到适当的.h.c文件中。只是一个临时的、快速的解决方案

静态函数是仅对同一文件中的其他函数可见的函数(更准确地说是同一翻译单元)

编辑:对于那些认为问题的作者意味着“类方法”的人来说:因为问题被标记为C,他意味着一个普通的旧C函数。对于(C++/Java/…)类方法,static意味着可以在类本身上调用此方法,而不需要该类的实例

发表评论