【发布时间】:2011-04-14 13:29:48
【问题描述】:
我不是 C 专家,在尝试交叉编译 C 应用程序时遇到此错误:
src/ls_sqlite3.c:522: error: expected expression before '/' token
有问题的行是这样的:
sqlite3_busy_timeout(conn, lua_tonumber(L,3)); // TODO: remove this
我怀疑某些编译器或某些设置不允许使用 // 用于 cmets,但 Google 没有提供帮助。有人知道吗?
谢谢。
【问题讨论】:
-
严格的 C 编译器不接受 C++ 样式的 cmets。
-
确实只有
/* ... */可以用旧的 C 语言进行评论(我不记得确切的版本了)。 -
我认为 // 是 C++ 风格的注释,从 C99 开始可用。也许您的编译器遵循 C89?
-
@steabert:我发现当使用
-std=c99 -pedantic调用时,gcc 对 C++ 样式的 cmets 不屑一顾 -
奇怪,来自
man gcc:“例如 -std=gnu89 -pedantic 会警告 C++ 样式 // cmets,而 -std=gnu99 -pedantic 不会。”
标签: c