Prob比较C中的指针和整数

Dim*_*tri 0 c signals

嗨,这个代码有问题.当我使用此功能时,我没有任何警告.:

    void handler(int sig){
   switch(sig) {
     case SIGINT : { click++; fprintf(stdout,"SIGINT recu\n");
                           if( click == N){
                             exit(0);
                           }
   }
     case SIGALRM : fprintf(stdout,"SIGALRM received\n");
                    exit(0);
     case SIGTERM:  fprintf(stdout,"SIGTERM received\n");
                     exit(0);


  }
  }
Run Code Online (Sandbox Code Playgroud)

但是当我用这个新版本重写函数时,我在if语句中有一个" 指针和整数之间的比较 "警告:

void handler( int sig){
   printf("Signal recu\n");
    if( signal == SIGINT){
     click++;
     fprintf(stdout,"SIGINT received; Click = %d\n",click);
     if(click == N){
      fprintf(stdout,"Exiting with SIGINT\n");
       exit(0);
     }
   } else if(signal == SIGALRM){
      fprintf(stdout,"SIGALRM received\n"); 
      exit(0);
   } else if(signal == SIGTERM){
     fprintf(stdout,"SIGTERM received\n"); 
     exit(0);
   }
Run Code Online (Sandbox Code Playgroud)

有人能告诉我问题在哪里吗?

Mar*_*off 10

在第二个代码中,您正在进行比较signal,这甚至不是代码中的局部变量.事实上,signal正如你所使用的那样,它可能指的是这个signal功能.

相反,在第一个代码中,您正在switch使用sig,这是int函数的参数.