【发布时间】:2010-04-30 20:14:19
【问题描述】:
我是 C 编程的新手。我想当你输入类似#define Const 5000 的东西时,编译器只是在编译时用 5000 替换了 Const 的每个实例。那是错的吗?
我尝试在我的代码中执行此操作,但出现语法错误。为什么我不能这样做?
#define STEPS_PER_REV 12345
... in some function
if(CurrentPosition >= STEPS_PER_REV)
{
// do some stuff here
}
编译器抱怨 if 语句的语法错误,没有给我任何细节。
【问题讨论】:
-
错误提示“语法错误:token -> ';' ; 第 31 列”,是的,它们在同一个文件中。奇怪的是,我可以在赋值语句 CURRENT_POSITION = STEPS_PER_REV 中使用它,但不能在 IF 语句中使用
-
是
#define STEPS_PER_REV 12345;吗? -
您是否 100% 确定您的定义不是#define STEPS_PER_REV 12345; ? (注意最后一个分号 - 这不应该在那里)
-
@Jordan 要么我们在您的评论中的分配缺少分号,要么您在问题中的#define 有一个额外的分号...我将使用 aaa 和 theatrus,并猜测是后者。
-
这就是为什么发布给你错误的确切代码而不是一些 b.s. 是非常重要的。它的版本。
标签: c if-statement c-preprocessor