#define MHZ *1000000l
#define MSEC /1000l
这就是功能定义
unsigned int SysTick_Config(unsigned int ticks)
{
if (ticks > SysTick_LOAD_RELOAD_Msk)
return (1); // Reload value impossible
STRELOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1; // set reload register
return (0); // Function successful
}
该函数如下所述被调用
SysTick_Config(96MHZ * 2.5MSEC);
我的疑问是使用的宏。写96MHZ是否意味着它被(96 * 1000000l)取代了? 96乘以1000000吗?
另外,#define MSEC / 1000l中的/ 1000l是什么意思?为什么是/用过的。
我正在使用IAR嵌入式工作台
最佳答案
在像这样的数字旁边使用宏时,数字和宏之间必须有空格。在这种情况下,您应该会看到编译器错误。/1000l
可以简单地除以1000。
关于c - 对C语言中的宏的怀疑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30432909/