PIC*_*ain 1 c if-statement c-preprocessor
我是C编程的新手.我想当你输入类似的东西时#define Const 5000,编译器只是在编译时将每个Const的实例替换为5000.那是错的吗?我尝试在我的代码中执行此操作,并且出现语法错误.为什么我不能这样做?
#define STEPS_PER_REV 12345
... in some function
if(CurrentPosition >= STEPS_PER_REV)
{
// do some stuff here
}
Run Code Online (Sandbox Code Playgroud)
编译器抱怨if语句带有语法错误,但没有给出任何详细信息.
Bri*_*tow 12
评论中的人是对的.你的#define结尾几乎肯定有一个分号.这意味着您的作业变为:
CURRENT_POSITION = 12345;;
Run Code Online (Sandbox Code Playgroud)
(假设你在行尾有一个分号......)
但你的if会变成:
if(CurrentPosition >= 12345;)
Run Code Online (Sandbox Code Playgroud)
这当然是无效的.
记住,#define不是C代码.他们不需要分号.