在keil编译时一直会报错,为什么会出现下面两个错误

#include "reg52.h" //包含头文件
#include "freq.h"

#define Timer0Init(void)
#define Timer2Init(void)

unsigned long value1=0; //计数值
unsigned long temp=0;
unsigned long value=0;

void Timer0Init(void) //定时器0初始化
{
TMOD|=0x05;
TH0=TL0=0;
TR0=0;
}

void Timer2Init(void)
{
TL2 = 0xfd; //设置定时初值
TH2 = 0xFE; //设置定时初值
RCAP2L = TL2;
RCAP2H = TH2;
TR2 = 1;
ET2 = 1;
EA = 1;
}

void main()
{
Timer0Init(); //开启定时器0用于外部脉冲计数
Timer2Init(); //开启定时器2
while(1)
{

        value1=value*3.33;
        temp=300000/value;
        
}

}

void tm2_isr() interrupt 5 using 1 //定时器2中断
{
static uint count=0;
TF2 = 0; //清除定时器2中断标志位
if(++count==600) //0.3s闸门信号
{
value=(uint)TH0<<8|TL0; //读取定时器0的计数值
TR0=count=0; //清零
TH0=TL0=0; //清零
TR0=1; //重启定时器0计数,开启新一轮计数
}
}

运行结果:

freq.c(14): error C141: syntax error near '{', expected 'hdata'
freq.c(15): error C129: missing ';' before '|='

#define Timer0Init(void)
#define Timer2Init(void)
问题就在这两句,你把两句定义成了空,导致下面那个函数
void Timer0Init(void) //定时器0初始化
{

}
其中的Timer0Init(void)会被替换成个空的,于是就变成了
void //定时器0初始化
{
}
编译器解释不下去了。