免费注册 查看新帖 |

Chinaunix

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

请教关于在不同版本的aix上编译c程序的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-16 11:38 |只看该作者 |倒序浏览
程序如下,现在的问题是在不改动程序的情况下,执行cc_r4 test.c -o test(必须使用cc_r4),使可执行程序能够正常运行。
程序如下:
test.c
#include <stdio.h>;
main (argc,argv)
{
char test1[2];
test1[0]='M';
fprintf(stdout,"%s\n",test1);
return 0;
}
这个程序在aix v4.2.1,c编译器版本vac4.3.3上,没有任何问题,结果为M
在aix v4.3.3,c编译器版本为vac5上,执行有问题,结果为M?镛??

论坛徽章:
0
2 [报告]
发表于 2003-05-16 13:08 |只看该作者

请教关于在不同版本的aix上编译c程序的问题

哎,为什么没有人出谋划策呢!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2003-05-16 13:28 |只看该作者

请教关于在不同版本的aix上编译c程序的问题

在test1[0]='M'; 前面加一句memset(test1,0x00,sizeof( test1));
就没有你说得那种现象了!

论坛徽章:
0
4 [报告]
发表于 2003-05-16 13:33 |只看该作者

请教关于在不同版本的aix上编译c程序的问题

由于test1没有初始化,才导致这个问题的。
象斑竹的做法可以,也可以在test1[0]='M';后加一句test1[1]=0;

论坛徽章:
0
5 [报告]
发表于 2003-05-16 19:33 |只看该作者

请教关于在不同版本的aix上编译c程序的问题

可能是我表述的不够清楚,实际上我是知道变量没有初始化的,因为这是个模拟程序。我的实际应用中有很多以前的程序,我发现这些程序中有些变量没有初始化,但是程序十分庞大,不方便人手修改,所以想看看有没有可能通过编译参数和库来入手解决这个问题

论坛徽章:
0
6 [报告]
发表于 2003-05-16 19:42 |只看该作者

请教关于在不同版本的aix上编译c程序的问题

应该没有
printf不同平台的实现都有点区别
有的会打印指定数目的

有的不会检查

你还是改改代码吧

但是如果这些代码很多的话
重写一个都可以了

论坛徽章:
0
7 [报告]
发表于 2003-05-16 20:02 |只看该作者

请教关于在不同版本的aix上编译c程序的问题

谢谢两位斑竹的热心回复。问题初步解决,但是不知道目前的方法会不会对程序的性能和稳定性有影响!

论坛徽章:
0
8 [报告]
发表于 2003-05-16 20:40 |只看该作者

请教关于在不同版本的aix上编译c程序的问题

偶只是总结他们的
不要谢我

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
9 [报告]
发表于 2003-05-19 10:27 |只看该作者

请教关于在不同版本的aix上编译c程序的问题

但是程序十分庞大,不方便人手修改,所以想看看有没有可能通过编译参数和库来入手解决这个问题


一个大型的软件项目。通过是用printf(fprintf)等是不好维护的。让若使用也请加上调试宏。建议最好做一个好的日志系统。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP