warning: incompatible implicit declaration of built-in function 'exit'

尝试编译如下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int
main(void)
{
    inti = -10;
     
    if(i < 0) {
        exit(1);
    }
 
    return0;
}

  编译信息如下:

$ gcc demo.c 
demo.c: In function ‘main’:
demo.c:9: warning: incompatible implicit declaration of built-in function ‘exit’

 

 

 

  出错的原因是因为没有包含对应的都文件信息。可以尝试使用下面几种方法解决:


添加 #include <stdlib.h> 头文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdlib.h>
#include <stdio.h>
 
int
main(void)
{
    inti = -10;
     
    if(i < 0) {
        exit(1);
    }
 
    return0;
}


编译时使用 [-fno-builtin-exit] 选项关闭警告

$ gcc -fno-builtin-exit demo.c 

 

 

使用系统定义常量移植性更好

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
 
int
main(void)
{  
    inti = -10;
     
    if(i < 0) {
        exit(EXIT_SUCCESS);
    }
     
    return0;
}

warning: incompatible implicit declaration of built-in function 'exit'

上一篇:突然不能上网


下一篇:libevent源代码分析--event_dispatch() (一)