minzisc 发表于 2025-3-25 21:00

C语言的main函数

1,是这样?

main(){}

2,还是这样?

void main(){}

3,还是这样?

int main(void){}

4,还是这样?

int main(){}

5,还是这样?

int main(int argc,char *argv[]){}

上面这么多种写法,那么哪种才是正确的写法呢?

查阅C89/C99/C11标准文档,里面明确固定了两种写法:

int main(void) { /* 。。。。。。 */ }int main(int argc, char *argv[]) { /* 。。。。。。 */ }

所以说,其他的写法并不符合标准,有些算是历史遗留有些算是编译器的扩展,还有些不知道从哪里生出来的。

所以说了这么多,为了代码的通用可移植性,建议采用标准提供的形式,还是推荐使用标准文档中规定的这两种写法。如果一个函数确定无需传入任何参数,那么用void限定是一个不错的选择。

loutin 发表于 2025-4-4 11:02

C语言要求所有函数必须显式声明返回类型

averyleigh 发表于 2025-4-4 12:01

main() {
    // 函数体
}

51xlf 发表于 2025-4-4 13:33

void main() {
    // 代码
}

ingramward 发表于 2025-4-4 16:35

        无参数的通用程序            

burgessmaggie 发表于 2025-4-5 19:39

int main(void) {
    // 程序代码
    return 0; // 表示程序成功执行
}

everyrobin 发表于 2025-4-5 22:42

void main()            

jkl21 发表于 2025-4-6 07:21

在编写一个文件处理程序时,可以通过命令行参数指定要处理的文件名。

adolphcocker 发表于 2025-4-8 17:28

适用于大多数场景,尤其是无需处理命令行参数的程序。

biechedan 发表于 2025-4-9 21:04

建议使用int main(void)这种明确指定无参数的写法。

claretttt 发表于 2025-4-10 00:17

void main() {}            

vivilyly 发表于 2025-4-10 03:27

void main(){},这里返回类型是void。

mnynt121 发表于 2025-4-10 14:04

一些嵌入式系统或特定的编译器可能允许void main(),但根据ISO C标准,main必须返回int。

wwppd 发表于 2025-4-10 16:07

若程序不需要接收命令行参数,推荐使用int main(void);若需要接收命令行参数,则应使用int main(int argc, char *argv[])。

updownq 发表于 2025-4-10 18:16

main 必须返回 int,通常 return 0; 表示成功,非零值表示错误。

xiaoyaodz 发表于 2025-4-10 20:24

显式声明 void 参数,增强代码可读性。

burgessmaggie 发表于 2025-4-10 22:27

int main(void)            

cashrwood 发表于 2025-4-12 20:49

使用void main()            

pixhw 发表于 2025-4-12 22:42

int main(void):适用于大多数简单应用程序。

sanfuzi 发表于 2025-4-13 11:51

int main(void){}
页: [1] 2
查看完整版本: C语言的main函数