我被当前正在用 Xcode 编写的 C 程序所困扰。经过几个小时的工作后,Xcode 突然开始抱怨“预期的表达”消息:
switch(cmd) {
case 'S':
state = sstart;
accpos = accmax = varnum = 0;
inquote = inddstar = false;
break;
case 'L':
char c; // *** expected expression
int i = 0;
bool processed;
while( (c = buff[i++]) != '\0') {
acc[accmax++] = c;
之后 Xcode 抱怨变量 c 在使用 c 时没有定义。
我在 Xcode 中尝试过“显示不可见”,但无济于事。使用 clang 或 gcc 手动编译程序会给出相同的错误消息。
在预处理器步骤之后,这部分代码如下所示(使用clang -E获得):
switch(cmd) {
case 'S':
state = sstart;
accpos = accmax = varnum = 0;
inquote = inddstar = 0;
break;
case 'L':
char c;
int i = 0;
_Bool processed;
while( (c = buff[i++]) != '\0') {
acc[accmax++] = c;
所以也没什么有趣的。
有任何想法吗?我在 23 年前编写了我的最后一个 C 程序,所以我可能错过了一些东西......