这是我的程序(vars是德语)
int ABFRAGE(int max,int min){
int eingabe;
do {
printf("\t>");
scanf("%i",&eingabe);
} while (eingabe > max || eingabe < min);
return eingabe;
}
#define ABFRAGEERGEBNIS Abfrageergebnis = (int)ABFRAGE
int main(void);
int Abfrageergebnis;
ABFRAGEERGEBNIS; <-!
if (Abfrageergebnis == 2)
NAMENSAENDERUNG(i,Name);
if (Abfrageergebnis == 1)
getchar();
STRING_PROLOG;
它应该得到一个数字保存并执行此操作,if部分说什么。但在&lt; - !是警告
答案 0 :(得分:0)
我认为,使用您当前的代码,您将内存地址读入int,这不是您想要做的。我建议你制作第二行代码int *eingabe;
。
#define ABFRAGEERGEBNIS Abfrageergebnis = (int)ABFRAGE
。您正在调用函数ABFRAGE但未指定参数max和min。你也不需要(int)。
ABFRAGE功能很好 - 你只需要将我提到的行更改为#define ABFRAGEERGEBNIS Abfrageergebnis = ABFRAGE(max, min)
。你还需要定义max和min,这是我在测试时用main做的。
答案 1 :(得分:0)
那个宏太可怕了,你为什么要用它?
此:
#define ABFRAGEERGEBNIS Abfrageergebnis = (int)ABFRAGE
ABFRAGEERGEBNIS; <-!
将扩展为
Abfrageergebnis = (int) ABFRAGE;
换句话说,您将 ABFRAGE
函数的地址分配给int
变量Abfrageergebnis
。
杀死宏,然后执行:
Abfrageergebnis = ABFRAGE();
对该功能进行正确的调用。