keil 编译器编译 N76E003代码加括号就报错

2019-07-15 07:53发布

#define     InputSDIO()                                     (P00_Input_Mode;set_P0S_0;)
使用宏定义的时候 加括号就会报错 SOURCECMT2300CMT2300.C(420): error C141: syntax error near ';'
#define     InputSDIO()                                     P00_Input_Mode;set_P0S_0;
不加括号就不会报错这是为什么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
butterflydw
1楼-- · 2019-07-15 18:25
调用的地方贴出来看看,宏定义单纯就是文本替换,替换以后你看语法上有没有问题。
新星之火12138
2楼-- · 2019-07-15 21:14
u8 bSpi3ReadByte(void)
{
         u8 RdPara = 0;
         u8 bitcnt;
   
         ClrCSB();
         InputSDIO();                        
           InputSDIO();               
         for(bitcnt=8; bitcnt!=0; bitcnt--)
                 {
                 ClrSDCK();
                 RdPara <<= 1;
                 Delay_10us(SPI3_SPEED);
                 SetSDCK();
                 Delay_10us(SPI3_SPEED);
                 if(SDIO_H())
                         RdPara |= 0x01;
                 else
                         RdPara |= 0x00;
                 }
         ClrSDCK();
         OutputSDIO();
         OutputSDIO();
         SetSDIO();
         SetCSB();                        
         return(RdPara);        
}
新星之火12138
3楼-- · 2019-07-16 02:31
每次都是在我调用的地方报错
zzpf
4楼-- · 2019-07-16 06:38
 精彩回答 2  元偷偷看……
hfgdzc
5楼-- · 2019-07-16 07:06
另外,调用的地方不需要再加分号的,去掉试试。再就是如果没有特殊需要宏的名字里也别加括号
wrfqwerty
6楼-- · 2019-07-16 09:57
圆括弧不可以那么用。。

一周热门 更多>