c - 什么是 C 中的 "static"函数?

标签 c function static terminology

问题是关于普通 函数,而不是 static 方法,如评论中所述。

我明白什么是static 变量,但什么是static 函数?

为什么如果我声明一个函数,让我们说void print_matrix,让我们说a.c(没有a.h)并包含"a.c" - 我得到 "print_matrix@@....) already defined in a.obj",但是如果我将它声明为 static void print_matrix 然后编译?

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

最佳答案

static 函数是仅对同一文件中的其他函数可见的函数(更准确地说,相同的 translation unit )。

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

关于c - 什么是 C 中的 "static"函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/558122/

相关文章:

javascript - 文本框失去焦点后如何调用函数

javascript - 打印两个值而不解构

javascript - 如何避免输入值切换大小写

java - 如何在扩展Application类的类中的静态方法中调用getApplicationContext?

ios - 使用静态变量还是通过 View Controller ? iOS

c - 如何在退出程序前开始计时 5 秒?

c - 尝试将多个信息存储到文本文件时出错

cmocka自由运行和捕获异常

c - 如果 .txt 文件中存在某个单词,则将该单词复制到另一个 txt 文件

node.js - Express/Node/Cloud9 - 提供静态文件的问题