我的项目几乎正常,但我得到1
警告: "隐含的功能声明' init_phase_correct' [-Wimplicit函数声明]"
已经在我的主要
中调用了该函数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个实现 - 那么为什么它是&#34; Wimplicit-function-declaration&#34;?
答案 0 :(得分:3)
我知道,包含init_phase_correct()
声明的头文件包含一个带有一些自动生成名称(INCFILE1_H_
)的include guard。
另外,您没有指定init_phase_correct()
是在PWM.h
内宣布,还是另一个文件, PWM.h
包含。
如果没有更多代码,我无法肯定地说,但我的千里眼技能告诉我,INCFILE1_H_
可以用作另一个文件中的包含守卫 - PWM.h
本身或其他文件,包括之前的文件,包含init_phase_correct()
的声明。