我知道 C 中有三种类型的静态减速:
1: Constant - 常量静态变量,ex: static const int i = 5;
2: Changable - 只是一个普通的静态变量,例如:static int hi = 10;
这是我的问题
静态还有另一种形式,它采用“代码”的形式。这是什么意思,您能举个例子吗?
谢谢!
编辑: 静态/常量变量是否存储在堆栈/堆中?
最佳答案
也许你在谈论一个static function ?
这是“静态”一词的具体用法,它与静态变量完全不同。
当您声明一个函数为“静态”时,这意味着它不能从另一个源文件链接。它通常用于使某些功能保持“私有(private)”。
[编辑] 请注意,理论上,仍然可以使用指针从另一个源文件访问函数代码,但这不是访问函数的正常方式(当然也不是最简单的方式)。感谢 Eric Postpischil 指出这一点。
不幸的是,在 C 标准中使用同一个词“静态”表示两种不同的意思,这取决于用于函数或变量。
[edit]:这是一个不同的问题,但无论如何:在静态变量的情况下,它们既不在堆中也不在堆栈中分配。它们是静态的,这意味着它们分配在静态空间中,由编译器在启动时直接分配。 Stack 用于内部函数变量,heap 用于 malloc()/free()。
关于c - C中不同类型的静态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16284506/