C退出功能没有做我想的那样

pis*_*ire 1 c exit

当我使用调试器时,我可以告诉退出没有退出该功能.我使用退出功能错了吗?(我必须)我该如何解决这个问题?

int is_prime(int x,char array[]){
int divider = (x-1);   
float test;

  while(x>-1){
  test = isdigit((x % divider));  //isdigit returns !0 if digit
    if(divider == '1'){
    return(1);  //if divider reaches 1 then the number is prime
    exit;
    } 
    if(test  == '0'){
    return (0);//not prime
    exit;
    }
  divider--;
  }
Run Code Online (Sandbox Code Playgroud)

}

Chr*_*odd 5

函数的名称本身(后面没有括号)只是给你一个函数的地址而不调用它.在C中,最基本的语句是一个表达式,它的副作用被评估,表达式的结果值被忽略.因此,类似exit;3;没有副作用的声明是合法的,但实际上并没有做任何事情,也可能被删除.有些编译器会给你关于这些毫无意义的语句的警告,尽管你可能需要打开额外的诊断警告来获取它们.使用这些选项(例如-Wallfor gcc)是一个非常好的主意,可以帮助你避免这样的陷阱.