你能在if语句中使用#defined值吗(在C程序中)?

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代码.他们不需要分号.