繁体   English   中英

隐含的函数声明,即使我已经包含该文件?

[英]implicit declaration of function even though i have included the file?

我的项目几乎正常,但我得到1

警告:“函数的隐式声明'init_phase_correct'[-Wimplicit-function-declaration]”

有我的主要调用的功能

int main(void)
{
    volatile char start_flag=0;
  uart0_Init ( MYUBRRF );
  DDRB |=(1<<PB7);
  sei();  //enable global interrupt
  initAdc();      
  data = 'a';
  ADCSRA |=(1<<ADIE);
  init_phase_correct();

并且init_phase_correct包含在顶部

#include "PWM.h"

链接到

/*
 * IncFile1.h
 *
 * Created: 23-04-2015 11:30:38
 *  Author: Martin Egsdal
 */ 


#ifndef INCFILE1_H_


#define INCFILE1_H_

extern void init_fastPWM();
extern void init_phase_correct();
extern void init_ph_frPWM();
extern void init_phase_correct_alt();


#endif /* INCFILE1_H_ */

在C文件中它是:

void init_phase_correct(){
TCCR0A|=(1<<COM0A1)|(1<<WGM00); //Clear OC0A on Compare Match when up-counting. Set OC0A on Compare Match when down-counting
TCCR0B =(1<<CS01);   //prescalling by 8 
OCR0A =102;  //40 duty cycle    
TCNT0= 0;
DDRB |= (1<<DDB7);// configure OC0A pin for output  
}

当我在我的主要中右键单击init_phase_correct()时,我可以看到2个实现 - 那么为什么它是“Wimplicit-function-declaration”?

我看到,包含init_phase_correct()声明的头文件包含一个带有一些自动生成名称( INCFILE1_H_ )的include guard。

另外,你没有指定,是否init_phase_correct()声明中PWM.h也许另一个文件,是由包括 PWM.h

没有更多的代码,我不能肯定地说,但我的千里眼技能告诉我, INCFILE1_H_可以用作另一个文件中的包含守卫 - 无论是PWM.h本身还是另一个,包含文件之前 ,包含init_phase_correct()声明init_phase_correct()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM