免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6703 | 回复: 7
打印 上一主题 下一主题

[C] C语言最多可以定义多少个全局变量啊? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-30 11:36 |只看该作者 |倒序浏览
跟什么有关啊?
跟编译器有关?
跟内存大小有关?

论坛徽章:
0
2 [报告]
发表于 2005-03-30 13:21 |只看该作者

C语言最多可以定义多少个全局变量啊?

有谁能提供一点信息?
没有有看法的?

论坛徽章:
0
3 [报告]
发表于 2005-03-30 14:27 |只看该作者

C语言最多可以定义多少个全局变量啊?

没听说过ELF或者OS对data段有什么限制呀!

论坛徽章:
0
4 [报告]
发表于 2005-03-30 17:33 |只看该作者

C语言最多可以定义多少个全局变量啊?

原帖由 "lgchenxu" 发表:
跟什么有关啊?
跟编译器有关?
跟内存大小有关?


有没有想过用上一大堆全局变量程序会变成什么样子?今后如何维护?

论坛徽章:
0
5 [报告]
发表于 2005-03-31 10:43 |只看该作者

C语言最多可以定义多少个全局变量啊?

原帖由 "sunlan" 发表:


有没有想过用上一大堆全局变量程序会变成什么样子?今后如何维护?


只要需要,没有什么不行地……
太多了,你可以定义一个struct,放在一起就OK了嘛……

论坛徽章:
0
6 [报告]
发表于 2005-03-31 11:44 |只看该作者

C语言最多可以定义多少个全局变量啊?

原帖由 "独孤九贱" 发表:


只要需要,没有什么不行地……
太多了,你可以定义一个struct,放在一起就OK了嘛……


运行是不会有什么问题的。但几乎所有的著作里都不建议、或者说反对使用大量的全局变量。因为这会导致在软件易读性、维护、功能扩展等方面都带来一系列的问题。尤其是当一个变量可能导致多个模块发生变化的情况下,排错和修改都将变得极为困难,一个微小的bug将导致全局的问题!这就是为什么要讲究函数封装、错误隔离的原因。

论坛徽章:
0
7 [报告]
发表于 2005-05-23 11:16 |只看该作者

C语言最多可以定义多少个全局变量啊?

在网上看到了一些,写在这里求证一下吧:
局部数组:最大不能超过64K;如果要超过64kb,可以使用huge内存模式,例如:
int huge values[17000]
或者用malloc
char *a;
a = (char*)malloc(300000);

论坛徽章:
0
8 [报告]
发表于 2005-05-23 12:16 |只看该作者

C语言最多可以定义多少个全局变量啊?

建议不要定义太大,我曾经在hp_Ux遇到过因为定义太大,导致dump的情况(在aix下,同样的情况没有问题)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP