中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-10-31 09:39
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行
DOS开发编程 & 发展交流 (开发室) » 求助!--DJGPP下全局变量的初始化
可打印版本  1,615 / 1
第1楼 zlz616 发表于 2008-09-17 16:24
新手上路 发帖 2 积分 6
求助!--DJGPP下全局变量的初始化
初次接触DJGPP,以下程序工作正常。

#include <stdio.h>

struct a
{
char l;
int m;
};

int glob;
int glod={1,2,3,4,5,6,7,8,9,0};
int *bssp=NULL;
int *datp=&glob;
struct a a={10,11};

int main(void)
{
unsigned char i;

for(i=0;i<10;i++)
printf("%d ",glod);
printf("%x ",datp);
printf("%d %d",a.m,a.l);

return 0;
}

编译成功后运行结果为:
1 2 3 4 5 6 7 8 9 0 dd68 11 10

将数组glob的定义修改为

__attribute__ ((section (".usr"))) int glod={1,2,3,4,5,6,7,8,9,0};

其他不变。编译成功,但执行结果变为:
0 0 0 0 0 0 0 0 0 0 dd68 11 10
也就是说对glod的初始化失效。

之所以指定变量的section属性是本人开发的程序有特殊的功能需求,哪位朋友如能提供帮助,在下不胜感激。

[ Last edited by zlz616 on 2008-9-17 at 04:27 PM ]
第2楼 zlz616 发表于 2008-09-18 09:44
新手上路 发帖 2 积分 6
没有人知道吗,哪位高手指点一下
没有人知道吗,哪位高手指点一下
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023