宏定义更改值?

时间:2015-04-09 15:54:15

标签: c linux macros definitions

我在一个文件中有这个宏定义(我们称之为file1.c):

#define VAL_NOT_SET -9999.9

在另一个文件中,我包含file1,然后将另一个变量初始化为VAL_NOT_SET

decimal value;
value = VAL_NOT_SET;

稍后,我尝试比较两个值:

if(value == VAL_NOT_SET){
...
}

但if语句失败了。当我打印出valueVAL_NOT_SET的内容时,我得到:

value == -9999.900000
VAL_NOT_SET == 759.867067

但是,如果我将我的宏设置为-9999,而不是-9999.9,则没有问题,VAL_NOT_SET会保留其值。

此外,这是我试图从AIX机器转换到Linux的代码,并且在AIX上没有任何问题。有没有人知道为什么宏会失去它的价值,但只有当它是float

0 个答案:

没有答案