【问题标题】:Untyped arguments in main [duplicate]main中的无类型参数[重复]
【发布时间】:2011-07-02 19:09:36
【问题描述】:

可能重复:
“int main (vooid)”? How does that work?

main(a,b,c)
{
    a=1;
    b=2;
    c=3;
    printf("%d %d %d",a,b,c);
}

三个整数参数a,b,c 在 main 中如何可能,因为我们知道第二个形参必须是指向字符指针的指针?

【问题讨论】:

    标签: c


    【解决方案1】:

    a) 指针(几乎总是)整数
    b) 一些环境,包括 windows 允许三个参数。

    编辑:可识别的指针并不总是整数。

    【讨论】:

    • 不,它们不是整数,它们可以是整数,但绝对不必是整数。
    • @wich:我会更进一步。它们从不整数,只是可能与整数大小相同。
    • 作为 int 和与 int 无法区分有什么区别?这不是一种所有表示都是超自然的高级语言。
    • @Marcin:说“指针通常是 int”与说“float 通常是 int”一样有意义。
    • @Oli Charlesworth:如果我见过一个似是而非的类比。 float 和 int 在算术运算下的行为是不同的,即使它们的长度相同。相比之下,将指针转换为 int(假设它们的长度相同)并执行算术运算将得到完全相同的结果,就好像没有发生转换一样。
    【解决方案2】:

    这种语法在 C 中已弃用。只是不要使用它

    【讨论】:

      【解决方案3】:

      参数参数隐式为int,除非您另外指定。

      main 只需要在 托管 平台上是 main(void)main(int, char **)(即基本上在操作系统下运行)。在独立实现中,main 的原型是实现定义的。

      【讨论】:

        猜你喜欢
        • 2011-05-09
        • 2021-06-10
        • 1970-01-01
        • 2021-12-23
        • 1970-01-01
        • 2016-01-27
        • 2017-04-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多