static变量应该怎么前置声明

chinham 2008-12-24 04:34:53
有一个大数组,只有一个文件用,所以想定义成static变量.但因为数据比较多,3600行左右.所以想放在文件尾部.如果文件前部函数要引用这个数组应该怎么前置声明.
用extern我觉得应该是其他文件中定义才用到的.
...全文
243 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
livpu 2008-12-24
  • 打赏
  • 举报
回复
定义到尾部跟定义到头部没有什么区别吧?
既然是static 就是全局变量了
全局变量是放到数据段的,跟文件的成员函数和局部变量不是一个区域。
看下面这道题:
------------------------------------------------- 
2、问题:Static的理解
关于static变量,请选择下面所有说法正确的内容:
  A、若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;
  B、若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度;
  C、设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题;
  D、静态全局变量过大,可那会导致堆栈溢出。
  
答案与分析:
  对于A,B:无需解释了。
  对于C:所谓的函数是可重入的(也可以说是可预测的),即:只要输入数据相同就应产生相同的输出。
  对于D:静态变量放在程序的全局数据区,而不是在堆栈中分配,所以不可能导致堆栈溢出,D是错误的。
  因此,答案是A、B、C。
---------------------------------------------
winjaney 2008-12-24
  • 打赏
  • 举报
回复
2楼说的方法最好!这种数组的初始化一般都放在头文件中的!
sunyuqian 2008-12-24
  • 打赏
  • 举报
回复
像二楼朋友说的放头文件里是一个办法
xiaoyisnail 2008-12-24
  • 打赏
  • 举报
回复
不过你的数组是static的,就不能再是extern的了
太乙 2008-12-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xiaoyisnail 的回复:]
extern也可以用在本文件的前置声明

你也可以把那个数组放到一个头文件里,只在用到的地方include就行了
[/Quote]up
xiaoyisnail 2008-12-24
  • 打赏
  • 举报
回复
extern也可以用在本文件的前置声明

你也可以把那个数组放到一个头文件里,只在用到的地方include就行了
waizqfor 2008-12-24
  • 打赏
  • 举报
回复
应该只能用外部定义extern

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧