c - 警告 : cast from pointer to integer of different size [-Wpointer-to-int-cast]

标签 c pointers integer warnings

这是我的程序(变量是德语)

    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 部分说的是什么。但在 <-!是警告

最佳答案

我认为,使用您当前的代码,您正在将内存地址读入 int 中,这不是您想要做的。我建议您编写第二行代码 int *eingabe;

编辑:我完全错了。我认为错误在这里:#define ABFRAGEERGEBNIS Abfrageergebnis = (int)ABFRAGE。您正在调用函数 ABFRAGE 但未指定参数 max 和 min。你也不需要 (int) 那里。

函数 ABFRAGE 本身就很好 - 您只需将我提到的行更改为 #define ABFRAGEERGEBNIS Abfrageergebnis = ABFRAGE(max, min)。您还需要定义 max 和 min,这是我在测试时在 main 中所做的。

关于c - 警告 : cast from pointer to integer of different size [-Wpointer-to-int-cast],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21887998/

相关文章:

c - 将字符附加到字符串数组中的字符串时出现段错误

c - 如何明智地解释这个编译器警告?

Java打印包含多个整数的字符串

sql - MySQL:如何以编程方式确定外键关系?

c++ - 使用整数指针作为唯一 ID 有多糟糕? C++11

c - 如何通过 printf 将正数打印为负数

c# - 如何将 BitArray 转换为单个 int?

java - 在同一类中的方法之外的任何地方访问整数

c++ - C/CPP 宏或预处理器来处理一个方法的多个版本

c - 是否没有必要在 8 的倍数地址处存储结构的 double 成员?