关于keil中会出现的redefinition

redefinition错误

经常在写代码的时候出现这个问题
main.c(10): error C231: ‘init_Port’: redefinition
然后就在想为什么,代码是好的,自己也进行了声明,感觉哪里都没问题,今天我也遇到了这个问题,所以记录下来,以免下次在遇到这种错误,感觉莫名其妙。
先看看我的代码:

#include <C8051F340.H>
#include "main.h"
假设P1^0接地  P1^1是温度采样值输出
init_Port();
init_timer0();
unsigned char times;
void main(){
	init_Port();
	init_timer0();//定时器中断初始化
	
}
void init_Port(){
	
}
void init_timer0(){
	
	TMOD=0x01;
	TH0=(65535-50000)/256;
	TL0=(65535-50000)%256;
	ET0=1;
	TR0=1;
	EA=1;
}
//100ms进行执行程序
void timer0()interrupt 1{
	times++;
	if(times==1){
		times=0;
		TH0=(65535-50000)/256;
		TL0=(65535-50000)%256;
		//中断程序
	}
}

编译后他会告我
init_Port();
init_timer0();

这两函数重复定义了,一开始我在想,我进行声明了也没有重复定义,哪里出错了,找了好久我才发现,我在声明的时候直接写了函数名,而没有返回类型。这样编译器就会重复进行编译,所以会出现以上错误,所以声明的时候也应该是:
void init_Port();
void init_timer0();

当然了,我代码还没写完,只是为了说明一下这个错误。
还有其他的可能就是真的有可能重复定义,因为在某些.h文件中已经定义过了而自己却不知道的,这个时候就该好好找找。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值