中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 求助!--DJGPP下全局变量的初始化
作者:
标题: 求助!--DJGPP下全局变量的初始化 上一主题 | 下一主题
zlz616
新手上路





积分 6
发帖 2
注册 2008-9-17
状态 离线
『楼 主』:  求助!--DJGPP下全局变量的初始化

初次接触DJGPP,以下程序工作正常。

#include <stdio.h>

struct a
{
char l;
int m;
};

int  glob;
int  glod[10]={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[10]={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 ]

2008-9-17 16:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zlz616
新手上路





积分 6
发帖 2
注册 2008-9-17
状态 离线
『第 2 楼』:  没有人知道吗,哪位高手指点一下

没有人知道吗,哪位高手指点一下

2008-9-18 09:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: