警告:正在传递第1个参数(共个)..从不带强制转换的整数生成指针

warning: passing argument 1 of ... makes pointer from integer without a cast

本文关键字:转换 指针 整数 共个 参数 1个 警告      更新时间:2023-10-16

我有一个这样的枚举:

enum PROCESS_TYPE
{
    PRI_PROC = 0,
    BG_PROC  = 64,
    INT_PROC = 128,
    TI_PROC  = 256,
    PHANTOM  = 512,
    BLOCK    = 1024,
    ZOOMBIE  = 2048,
    ILLEGAL  = 4096
};

我有一个名为create_process的函数,它有一个作为PROCESS_TYPE类型的参数,如下所示:

create_process(enum PROCESS_TYPE proc_type, const char *name, ...);

当我以这种方式使用create_process函数时:

create_process(BG_PROC, "server" ...);

我得到错误passing argument 1 of 'create_process' makes pointer from integer without a cast。如何解决这个问题?提前谢谢。

编辑:对于第二个参数,它是一个常量字符,但它也报告passing argument 2 of 'create_process' makes pointer from integer without a cast 的错误

您必须将函数调用更改为create_process(BG_PROC, "server");,而不是create_process(BG_PROC, "server" ...);。对我来说,以下代码运行良好。。

 enum PROCESS_TYPE {
    PRI_PROC = 0,
    BG_PROC  = 64,
    INT_PROC = 128,
    TI_PROC  = 256,
    PHANTOM  = 512,
    BLOCK    = 1024,
    ZOOMBIE  = 2048,
    ILLEGAL  = 4096
   };
   void create_process(enum PROCESS_TYPE, const char *,...);
   int main() {
        create_process(BG_PROC, "server");
   }
   void create_process(enum PROCESS_TYPE proc_type, const char *name,...) {
     // ...
   }