VScode报错error: ‘::main‘ must return ‘int‘ void main()

博客讨论了在C编程中遇到的`void main()`错误,指出某些C编译器要求`main()`函数必须返回`int`。解决方案是将`void main()`更改为`int main(void)`或`int main(int argc, const char* argv[])`。文章强调了在C99标准中,`main`函数返回类型的重要性,以及其返回值如何反映程序执行状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在运行指针时终端出现error: ‘::main’ must return ‘int’ void main()错误。
源代码如下:

#include<stdio.h>
void main()
{
    int a,*p,b,c,d,e;
    a=100;
    p=&a;  /* (*&a) 先进行&a运算,得a的地址,再进行*运算,即变量a的值 */
    b=*&a; 
    printf("a=%d\n",a);
    printf("p=%d\n",p);
    printf("*p=%d\n",*p);
    printf("*&a=%d\n",b);
    c=(*p)++;
    printf("(*p)++=%d\n",c); /* (*p)++相当于a++,表示p所指向的元素值加1*/
    printf("a=%d\n",a);
}

报错如下:
在这里插入图片描述
原因及解决方案如下:
(1)原因:
有的C编译器要求baimain()函数必须要有一个int的返回值。用以获知main()函数的执行情况。
(2)解决方案:

void main()修改为以下皆可:
int main(void)
int main(int argc, const char *argv[])
int main(int argc, const char *argv[], const char *env[])

在这里插入图片描述

一般main()函数正常运行结束,就返回一个0;
如果出错,就返回相应的int型的出错代码值(由编程者约定)。
在 C89 标准中,main( ) 是可以接受的。Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The C programming Language 用的就是 main( )。不过在最新的 C99 标准中,只有以下两种定义方式是正确的:

int main(void){/百度百科示例代码/}//整数类型主函数(无类型)

int main(int argc,char **argv)//整数类型主函数(整数类型 统计参数个数,字符类型*数组指针至字符[])

main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)。
  如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出。不过,我还是建议你最好在main函数的最后加上return 语句,虽然没有这个必要,但这是一个好的习惯。
  也就是说在最新的C语言标准中强制要求main函数的返回值类型为int,main函数的返回值是传递给操作系统,让操作系统判断程序的执行情况(是正常结束还是出现异常)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值