gcc: Compilation Warning: incompatible implicit declaration of built-in function `bzero’

时间:2021-11-07 19:36:57

http://joysofprogramming.com/gcc-incompatible-implicit-declaration-bzero/

这个警告加上#include <strings.h>就可以了。


The purpose of bzero() as described by the man page

       bzero - write zero-valued bytes


Let’s make use of bzero in a simple program

int main(int argc, char*argv[]){
    void *s;
    size_t n;
bzero(s,n);
    return 0;
}


Now compile the program bzero.c…

$ gcc bzero.c


You will see the following warnings.

bzero.c: In function ‘main’:
bzero.c:4: error: ‘size_t’ undeclared (first use in this function)
bzero.c:4: error: (Each undeclared identifier is reported only once
bzero.c:4: error: for each function it appears in.)
bzero.c:4: error: expected ‘;’ before ‘n’
bzero.c:5: warning: incompatible implicit declaration of built-in function ‘bzero’
bzero.c:5: error: ‘n’ undeclared (first use in this function)


This is because we missed to add the headers which declare the function bzero() and the supporting types
Let’s add the relevant header files (.h) and compile the program

#include <strings.h>

int main(int argc, char*argv[]){
    void *s;
    size_t n;
bzero(s,n);
    return 0;
}


Compile..

$ gcc bzero.c


Now you will find that the program is successfully compiled and linked.