C语言static的一个困惑

C语言 码拜 9年前 (2015-05-11) 1213次浏览 0个评论

C语言static的一个困惑这是exam01.h文件C语言static的一个困惑这是main测试文件C语言static的一个困惑这是运行结果
我昨天看到了C语言中的static,代码中只要加了static的代码块就是内部链接呀,那就不应该给外部的文件引用呀,大家帮我这个小白解解惑呗

5分
这个,我觉得这样理解。
static变量定义了,就在内存里面画了一块内存出来,然后这个内存就一直占用着,直到程序结束。
而不是楼主想的那样,内部外部不能引用。
不知道楼主是不是接触了面向对象编程,那里面有个私有变量,那个外部就不能访问了,
楼主不要弄混了
17分
题主 你得想弄清楚什么是 #include
这个预处理之类是把 指定文件的全部内容都写到#include 的位置
所以你的 main文件 预处理之后的代码是
……..
static int INT_MAX = 1000;
int sum()……
int main()
……

你的INT_MAX 的确是内部链接 的确是其他文件找不到 这个INT_MAX
但是你没有在其他文件找这个符号 
你是在本文件使用这个符号 
所以没什么问题 

记住一点 .h 文件只是 .cpp文件的 一个片段

8分
楼上两位的解答是对的,楼主main函数的cpp文件包含了定义static变量的exam01.h头文件,所以static变量INT_MAX在cpp文件中是可见的。
嗯,有点懂了,等于我是直接把exam01.h这个文件导入到了main文件中,所以static int INT_MAX就是一个main中的变量了。
那我该怎么分别编译这两个文件呢,求指教
哦,是不是在一个工程里面实现

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C语言static的一个困惑
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!