renlu617 发表于 2014-10-15 11:08:55

cvf 和 ivf 编译的结果不一样的原因

同一个程序用cvf编译正常,用ivf编译就离谱了,求原因啊?
两个编译好的程序,第一个是ivf编的
第二个是cvf编的

楚香饭 发表于 2014-10-15 11:31:53

我猜可能是某些变量没有初始化的原因。

IVF 可以开启未初始化变量检查。开启命令行开关 /check:uninit

renlu617 发表于 2014-10-15 11:35:45

楚香饭 发表于 2014-10-15 11:31
我猜可能是某些变量没有初始化的原因。

IVF 可以开启未初始化变量检查。开启命令行开关 /check:uninit ...

开启命令行开关 /check:uninit
是不是在程序里面加上这句话,加哪呢?

楚香饭 发表于 2014-10-15 11:59:32

编译时加在编译命令后面。

如果你通过 IDE 集成环境运行,找找工程设置里的相关设置。

renlu617 发表于 2014-10-15 14:00:20

楚香饭 发表于 2014-10-15 11:59
编译时加在编译命令后面。

如果你通过 IDE 集成环境运行,找找工程设置里的相关设置。 ...

我是一个初学者,能不能说说编译命令是什么?不是点绿色三角就运行了么?

fcode 发表于 2014-10-15 14:14:56

OK,你先不用了解命令行。先用集成环境吧。

工程属性你知道吧?把下图中的位置改为 Yes,然后重新运行

renlu617 发表于 2014-10-15 14:28:59

fcode 发表于 2014-10-15 14:14
OK,你先不用了解命令行。先用集成环境吧。

工程属性你知道吧?把下图中的位置改为 Yes,然后重新运行


按你说的修改了属性,出现了一个新问题,可是我已经定义这个变量了。

fcode 发表于 2014-10-15 14:38:13

这就是告诉你这个变量没有初始化。

也就是说,这个变量没有赋值你就直接用了。这就导致 CVF 和 IVF 的结果不一样。因为未赋值的变量,其值是不确定的。

renlu617 发表于 2014-10-15 15:06:35

跪谢,果然如此
页: [1]
查看完整版本: cvf 和 ivf 编译的结果不一样的原因