【问题标题】:return type of 'main' is not 'int''main' 的返回类型不是 'int'
【发布时间】:2015-01-22 14:40:27
【问题描述】:

我正在学习C语言,写了如下代码:

#include <stdio.h>
void main()
{
  char ch='a';
  printf("%c\n", ch);
}

然后我使用 GCC 编译代码,但我得到一个错误:

return type of 'main' is not 'int' [-Wmain-return-type]

我没有使用任何数据类型int,怎么了?

【问题讨论】:

标签: c main


【解决方案1】:

正如编译器告诉你的那样,main()必须返回int

int main(void)
{
    return 0;
}

返回值是程序的退出代码。

【讨论】:

    【解决方案2】:

    在这种情况下你需要使用

    #include <...>
    int main(){
    //code
    return 0; //or return any_integer;
    }
    

    如果您的程序返回nothing,系统将永远不会知道运行是否成功或出现了一些错误。

    【讨论】:

    • return 0; 不是必需的,是隐含的。
    • @ouah 你看,这个问题的作者可能是新手,所以这段代码会更容易理解。但总而言之,你是对的。我要编辑我的答案。
    【解决方案3】:

    用途:

    int main(void) { /* ... */ }
    

    用于定义main 没有参数的函数。请注意,int main() { /* ... */ } 也有效,但首选前一个定义。

    【讨论】:

      【解决方案4】:

      养成使用习惯:

      int main( int argc, char* argv[] ){
      
        // your code
      
        return 0;
      }
      

      argc 是传递给程序的参数数量。

      argv 是字符串 from 中的参数数组。

      【讨论】:

        【解决方案5】:

        错误的意思是,main() 应该返回 int。将main() 设为int 类型并返回一个有效的退出条件整数,通常终止为return 0。请参考这个以前的SO answer

        【讨论】:

          猜你喜欢
          • 2012-09-16
          • 1970-01-01
          • 1970-01-01
          • 2019-11-28
          • 2013-07-16
          • 2011-04-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多