Chinaunix

标题: 请教关于在不同版本的aix上编译c程序的问题 [打印本页]

作者: gazza    时间: 2003-05-16 11:38
标题: 请教关于在不同版本的aix上编译c程序的问题
程序如下,现在的问题是在不改动程序的情况下,执行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?镛??
作者: gazza    时间: 2003-05-16 13:08
标题: 请教关于在不同版本的aix上编译c程序的问题
哎,为什么没有人出谋划策呢!
作者: 蓝色键盘    时间: 2003-05-16 13:28
标题: 请教关于在不同版本的aix上编译c程序的问题
在test1[0]='M'; 前面加一句memset(test1,0x00,sizeof( test1));
就没有你说得那种现象了!
作者: wangz    时间: 2003-05-16 13:33
标题: 请教关于在不同版本的aix上编译c程序的问题
由于test1没有初始化,才导致这个问题的。
象斑竹的做法可以,也可以在test1[0]='M';后加一句test1[1]=0;
作者: gazza    时间: 2003-05-16 19:33
标题: 请教关于在不同版本的aix上编译c程序的问题
可能是我表述的不够清楚,实际上我是知道变量没有初始化的,因为这是个模拟程序。我的实际应用中有很多以前的程序,我发现这些程序中有些变量没有初始化,但是程序十分庞大,不方便人手修改,所以想看看有没有可能通过编译参数和库来入手解决这个问题
作者: 无双    时间: 2003-05-16 19:42
标题: 请教关于在不同版本的aix上编译c程序的问题
应该没有
printf不同平台的实现都有点区别
有的会打印指定数目的

有的不会检查

你还是改改代码吧

但是如果这些代码很多的话
重写一个都可以了
作者: gazza    时间: 2003-05-16 20:02
标题: 请教关于在不同版本的aix上编译c程序的问题
谢谢两位斑竹的热心回复。问题初步解决,但是不知道目前的方法会不会对程序的性能和稳定性有影响!
作者: 无双    时间: 2003-05-16 20:40
标题: 请教关于在不同版本的aix上编译c程序的问题
偶只是总结他们的
不要谢我
作者: 蓝色键盘    时间: 2003-05-19 10:27
标题: 请教关于在不同版本的aix上编译c程序的问题
但是程序十分庞大,不方便人手修改,所以想看看有没有可能通过编译参数和库来入手解决这个问题


一个大型的软件项目。通过是用printf(fprintf)等是不好维护的。让若使用也请加上调试宏。建议最好做一个好的日志系统。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2