【问题标题】:gcc: expected expression before "=" tokengcc:“=”标记之前的预期表达式
【发布时间】:2013-10-14 16:01:45
【问题描述】:

我正在用 C 语言编写一个简单的函数,它以字节(逐位)返回一个数字“1”。 这是我的代码,编译器告诉:“在“for”开始的行中“=”标记之前的预期表达式。

#include <stdio.h>
#include <stdlib.h>

int return_num_of_1(unsigned char u);

int main()
{
    printf("Hello world!\n");
    return 0;
    return_num_of_1(1);
}


int return_num_of_1(unsigned char u)
{

    int counter;

    for (counter = 0; u; u << = 1)
    {
        if(u & 1) counter++;
    }

    return counter;
}

【问题讨论】:

  • 为什么main中有两个return?
  • 这不是两个返回,第二个是对函数的调用。在return 0 之后拥有它仍然是错误的..
  • @JayNebhwani 我看到返回 0 然后返回一些东西 :)

标签: c gcc gcc-warning


【解决方案1】:
    for (counter = 0; u; u << = 1)

这里是编译问题。您应该使用不带空格的运算符

那里还有一些其他问题,删除空间可以修复编译。

【讨论】:

    【解决方案2】:

    = 之前的空格是错误的,如果你的意思是使用位移左赋值运算符。

    for (counter = 0; u; u &lt;&lt; = 1) 应该是for (counter = 0; u; u &lt;&lt;= 1)

    【讨论】:

      猜你喜欢
      • 2018-06-28
      • 2021-10-11
      • 2012-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多