【发布时间】:2015-05-29 04:38:22
【问题描述】:
我想在程序运行期间更改宏的值,为此我编写了这个示例:
#include <stdio.h>
#define MAX (65535 *0.5)
int main ( ){
float amp = 0.0;
float temp = 0.0 ;
temp = MAX ;
char c;
while (1){
printf(" MAX value %.2d.%.3d \n ", (short)temp,(short)(temp*1000));
scanf("%c",&c);
if( c =='x') {
#undef MAX
#define MAX (65535 +amp);
amp+= 0.1;
temp = MAX;
}
}
return 0 ; }
我有两个问题:
1. printf 没有显示所希望的值,例如 19.211,它总是
-32768.-32768
2. 我没有看到宏的值有任何变化。
知道我在这里做错了什么吗?
【问题讨论】:
-
您是否期望输入
'x'时宏的值会发生变化? -
确实是的,我已经阅读了这篇文章 stackoverflow.com/questions/9274500/… 并希望它会做到这一点
-
宏不是变量。它们是宏。如果需要变量,请改用变量。
标签: c