公司最近把某套程序从aix迁移到linux上,但是尝试迁移了一点后,出现了很多问题,很多是因为linux下临时变量未在代码层初始化就使用出现的,临时变量int会出现各种值,正数、负数、0. |
|
来大神。。。绝望ing。。。
|
|
20分 |
恭喜你,gcc没有这种选项,你只能改代码了。编译时加上 -Wuninitialized 选项,再加上-O选项(-O1 -O2 -O3),然后编译器发现未初始化变量就会报警告,你可以根据警告改代码。
|
10分 |
-finit-local-zero Initialize local vars and arrays to zero
-fzeros Treat initial values of 0 like non-zero values |
老师,这2个选项我man gcc后没看到,其他的zero的我都看了下,好像也没有,然后百度了下,好像是有 gfortran -finit-local-zero x的用法,然后我也用了,但是gfortran也报没有这个 -finit-local-zero的选项,版本是4.1.2,请问,这个要用哪个版本才能有该选项,或者要加什么组件? 多谢。 |
|
倒不是我不想这样做,主要是太多了,看着就整个人都不好了。。 |
|
老师再问一下,-fzeros是哪个工具里的?没搜到相关信息。。 |
|
10分 | |
看来只能改代码了,感谢2楼 JiangWenjie2014 给的方法,分每人都给了。
|
|
gcc -v –help
|
|