为什么 “#define NOP(N) NOP_##N ” 在ICC AVR中通不过编译,语句上哪个地方出错了?
#defineNOP_1asm("nop")//延时一个时钟周期#defineNOP_2NOP_1;asm("nop")//延时两个时钟周期#defineNOP_3NOP...
#define NOP_1 asm("nop") //延时一个时钟周期
#define NOP_2 NOP_1; asm("nop") //延时两个时钟周期
#define NOP_3 NOP_2; asm("nop") //延时三个时钟周期
#define NOP_4 NOP_3; asm("nop") //延时四个时钟周期
……
#define NOP_40 NOP_40; asm("nop") //延时40个时钟周期
然后利用“##”操作符,实现带参数宏的延时:
#define NOP(N) NOP_##N //延时 N个时钟周期 展开
#define NOP_2 NOP_1; asm("nop") //延时两个时钟周期
#define NOP_3 NOP_2; asm("nop") //延时三个时钟周期
#define NOP_4 NOP_3; asm("nop") //延时四个时钟周期
……
#define NOP_40 NOP_40; asm("nop") //延时40个时钟周期
然后利用“##”操作符,实现带参数宏的延时:
#define NOP(N) NOP_##N //延时 N个时钟周期 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询