可能重复:
为什么这个整数除法会产生 0?
我有一个 C 头文件,其中包含在我的项目中使用的各种常量值。这些值是使用 #define 定义的(例如 #define MAX_DATA_VAL 5)。
当我在另一个文件中使用这个值进行除法时,我得到了错误的答案。
//- In file MyParameters.h
#define MAX_DATA_VAL 5
#define MIN_DATA_VAL -5
// - In file MyFunctions.c
#include "MyParameters.h"
void Function()
{
float temp = 0;
temp = 2/MAX_DATA_VAL; // Wrong Output
}
temp 的值保持为 0(在调试时检查)。但是,如果我这样做了:
temp = 0;
float a = MAX_DATA_VAL;
temp = 2/MAX_DATA_VAL; // Correct Output
我得到了正确的答案!......谁能解释发生了什么......
提前致谢 :)