如何删除“不兼容的隐式声明”警告

时间:2014-01-03 10:02:19

标签: c

  

gcc -o hellomake hellomake.c hellofunc.c -I。

如何在不将所有代码放在一个文件中的情况下删除以下警告(在ubuntu 12.04上)?

  

hellofunc.c:在函数'myPrintHelloMake'中:hellofunc.c:6:3:警告:   内置函数'printf'的不兼容隐式声明   [默认启用]

这三个文件如下:

hellomake.c

#include<stdio.h>   
int main() 
{   // call a function in another file   myPrintHelloMake();   
return(0); 
}

hellofunc.c

#include<hellomake.h> 

void myPrintHelloMake(void) {

printf("Hello makefiles!\n");

return;
}

hellomake.h     / *     示例包括文件     * /

void myPrintHelloMake(void);

2 个答案:

答案 0 :(得分:3)

由于hellofunc.c拨打printf,您需要#include <stdio.h>

如果hellomake.c调用了您的myPrintHelloMake函数,则应该#include "hellomake.h"

hellomake.h也应该有include guards,例如

#ifndef HELLOMAKE_H_
#define HELLOMAKE_H_

void myPrintHelloMake(void);

#endif

答案 1 :(得分:2)

#inclde<stdio.h>应该是共同的头文件,或者在hellofunc.c中单独包含它。