【问题标题】:Function overloading of main in c [duplicate]c中main的函数重载[重复]
【发布时间】:2014-05-16 06:23:12
【问题描述】:

C 语言不支持函数重载[1],因为 C 中没有名称修饰。

但是 C 允许两者都写

int main ()

int main ( int argc, char** argv )

定义主函数时。 这个函数不是重载了吗?

【问题讨论】:

  • 我猜第一个声明应该是int main()int main(void)
  • 我想你的意思是int main() 而不是int main 认为它是函数重载? int main; 是变量而不是函数。
  • C 标准说实现没有为main 声明任何原型,并且它应该用int 的返回类型定义并且没有参数(int main(void) {}) 两个参数(int main(int argc, char *argv[]) {})(或以其他一些实现定义的方式)。无论您选择哪种形式,它都将是您程序的 main。供您参考,这在第 5.1.2.2.1 节(“程序启动”)中有描述。

标签: c


【解决方案1】:

这不是重载,因为您不能在同一个程序中同时拥有无参数 main 和 2 参数 main。重载main 需要在同一个程序中有两个版本的main 具有不同的签名,其中一个将被确定......以某种方式执行。

【讨论】:

    【解决方案2】:

    不,这不是函数重载,因为第一个声明声明了一个变量,而第二个声明声明了一个函数。

    【讨论】:

    • 我的意思是第一个是函数调用。现已编辑。
    猜你喜欢
    • 1970-01-01
    • 2011-12-31
    • 2022-12-22
    • 2011-07-14
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 2010-10-27
    相关资源
    最近更新 更多