浅谈c/c++中main(),int main(),void main(),int main(void)四者之间的区别

这篇具有很好参考价值的文章主要介绍了浅谈c/c++中main(),int main(),void main(),int main(void)四者之间的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、主函数也是函数

  • 首先我们要了解C/C++中函数的定义,因为main函数也是函数,与其他函数的区别只是主函数是程序的主线而已,程序从它开始也在其中结束。一个函数由函数名、其前的类型标识符、其后小括号里声明的参数类型和参数名(这里的参数叫形参,即形式参数或虚拟参数)以及大括号里的函数主体构成。主函数main也不例外。

二、main前面用int还是void?

  • main前面的是类型标识符,也就是类型名,其决定的是函数返回值的类型,int指有返回值且返回值为整型,void表示“空"即没有返回值。

  • 很多时候函数是不需要返回值的,只作为语句执行就完成任务了,比如主函数main常常就是;有返回值的函数通常出现在表达式中,int i=rand();
    rand()返回一个随机值替代自身位置赋值给i,有返回值的函数定义其返回值类型可以各式各样,有int有char有float有double。

  • 对于主函数,我们常常只要程序执行它,并不需要它的返回值,所以有人用int main加上return 0,有的直接用void main.。但最后制定标准的人说了:"main’must return ‘int’,其他的乱七八糟的返回值类型都不行,void也不行,以此盖棺定论。只返回int,这大概就是main作为一个主函数的尊严,本身没什么意义就是,毕竟return0都不需要你自己加,编译器就代劳了。

  • 所以对于其他花花绿绿的函数,主函数main前只能动加int(就好比主函数只能用main表示一样,只是这么规定而已),老的编译器可能还能用void,但现在的严的编译器大多默认int,用void会报错。

  • 顺便说一句,void main()或void main(void)是写程序的人根据函数原型自行发明的,C和C+标准中可从来没有定义过void main。

  • 再偷偷告诉你,如果你受不了强权的话你可以直接用main()省略int,不过这也,只是以前的写法,早晚会在渐渐的标准化中被淘汰,当然编译器是不大会报错的就是了。

三、int main()的小括号里加不加void?

  • 有参数的要写上对应数目的参数数据类型和参数名,没有参数的就不写或写上void,大多数情况下main是不需要参数的.那么写上void如何?不如何,很好,非常正确。用int main(void)这种写法非常标准,当然用int main()也是被广泛接受的,两者都表示本主函数没有参数,以C和C++标准来看都是正确的。

四、在int main()后的主体里面能不能出现int类型的的东西?

不论返回值数据类型或者参数数据类型如何都不影响你在函数(不论主函数还是其他函数)主体内使用其他各种数据类型。*
上一个奇葩程序:文章来源地址https://www.toymoban.com/news/detail-715299.html

#include<iostream>
int main()
{  
    float a;
    double b;
    char c;
    float xy(short x,double y,int z);//函数定义在主函数之前时可省略此声明语句。
    std::cout<<xy(1,1,1);
}
float xy(short x,double y,int z)
{
    float a=3.1;
    char b='a';
    int c=1;
    return a;//最好返回的值对应float数据类型,否则会将对应二进制码按float规则强制转换,至于报错是不可能报错的。
}

五、总结

  • main():相当于int main()
  • int main():int是main()函数的返回类型。这表明main()函数返回的值是整数且授受任何数量的参数。
  • void main():void为空型。这表明main函数无返回值目受任何数量的参数。
  • int main(void):main不接受任何参数且返回的值是整数。
    另外请注意:
  • main()为老式的写法。返回类型int在新型的编泽器通不可以省略,否则会有警告:
  • void main()为老式的写法。6.0及之前的vC使用这祥的写法。
  • int main()和int main(void)为新的写法.
  • 在C/C++中声明主函数要么写成int main(),要么写成int main(void)。main()、void main()和void main(void)这三种写法尽量放弃。

强烈建议下面这种形式,嘎嘎规范

int main()
{ 
return 0; /* 新标准主函数的返回值这条语句可以省略 */ 
} 

到了这里,关于浅谈c/c++中main(),int main(),void main(),int main(void)四者之间的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 梳理一下嵌入式和单片机之间的关系

    一定有很多人都听说过嵌入式和单片机,但在刚开始接触时,不知道大家有没有听说过嵌入式就是单片机这样的说法,其实嵌入式和单片机还是有区别的。单片机与嵌入式到底有什么关系? 下面我们就来说说嵌入式和单片机之间的联系和区别吧。 01  什么是单片机? 首先,

    2024年02月04日
    浏览(51)
  • 摊牌了我后悔入行了,浅谈为何不该入行嵌入式

    摊牌了我后悔入行了,浅谈为何不该入行嵌入式 \\\\插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的(禾厶-亻言-手戈)。最近比较闲,带做毕设,带学生参加省级以上比赛///绿色图标【‟で】liutianwang123 我本来是读研期

    2024年02月15日
    浏览(41)
  • 单片机和Linux嵌入式区别

    单片机是一种集成电路,它能够在一个芯片上完成各种计算、控制和管理任务。单片机没有明确的分层,这是因为它通常被用来设计嵌入式系统,其程序结构和功能要根据具体的应用需求来设计。 在单片机的程序设计中,可以通过一些方法将程序分为不同的层次,比如可以将

    2024年01月17日
    浏览(64)
  • 手机,蓝牙开发板,TTL/USB模块,电脑四者之间的通讯

    通过手机蓝牙连接WeMosD1R32开发板,开发板又通过TTL转USB与电脑连接.手机通过蓝牙控制开发板上的LED灯的开,关,闪等动作,在电脑上打开串口监视工具观察其状态.也可以通过电脑上的串口监视工具来控制开发板上LED灯的动作,而在手机蓝牙监测工具中显示灯的状态. 手机,TTL转USB转

    2024年02月03日
    浏览(39)
  • C/C++函数参数声明解析:int fun() 与 int fun(void) 的差异揭秘

      概述: 在C和C++中,int fun()和int fun(void)的区别在于函数参数的声明方式。前者默认允许任意参数,而后者明确表示没有参数。通过清晰的实例源代码,详细解释了它们在函数声明和调用中的不同之处。 在C和C++中,int fun()和int fun(void)的区别在于函数的参数声明方式。以下是

    2024年02月03日
    浏览(37)
  • 三本光电从颓废到武汉年薪30w的本科经历经验与浅谈(毕业工作一年的嵌入式软件工程师经验分享)

    三本光电从颓废到武汉年薪30w的本科经历经验与浅谈(毕业工作一年的嵌入式软件工程师经验分享) 我目前工作岗位为嵌入式软件工程师(雷达射频方向)。 我选择了武汉的一家做雷达的小企业,算上项目奖,年薪能拿到30。 我之前被坑的经历可以看我上一次发的文章。 我

    2024年02月04日
    浏览(61)
  • 详解C#-static void Main(string[] args)

    目录 简介: 举例: 输出结果:​ 总结: 在C#中static void Main(string[] args)这个句话有什么作用,分别代表什么意思!! 这句话是入口函数的声明,指定了C#程序的入口点,并定义了一个名为”Main”静态函数。该函数的参数是一个名为”args”字符串数组,用于接受命令参数,这个句

    2024年02月12日
    浏览(31)
  • 嵌入式设备中的SoC与MCU的区别深度解析

    嵌入式设备中的SoC与MCU的区别深度解析 在嵌入式系统中,SoC(System-on-a-Chip)和MCU(Microcontroller Unit)是两种常见的处理器架构。尽管它们都用于嵌入式应用,但它们在设计、功能和性能方面存在一些显著的区别。本文将深入解析SoC和MCU之间的区别,并提供相应的源代码示例。

    2024年03月23日
    浏览(51)
  • 嵌入式单片机 TTL电平、232电平、485电平的区别和联系

    TTL、232和485是常见的串口通信标准,它们在电平和通信方式上有所不同, ①一般情况下TTL电平应用于单片机外设,属于MCU/CPU等片外外设; ②232/485电平应用于产品整体对外的接口,一般是片外TTL串口转232/485,232/485进行数据通信传输; 1、TTL电平 (1)TTL(Transistor-Transistor Log

    2024年04月15日
    浏览(50)
  • [嵌入式系统-32]:RT-Thread -17- 任务、进程、线程的区别

    目录 一、基本概念澄清 1.1 任务 1.2 进程 1.3 线程 1.4 比较 1.5 任务VS进程 1.6 进程 VS 线程 1.7 任务 进程 线程 发展历史 任务(Task): 进程(Process): 线程(Thread): 发展趋势: 二、不同操作系统中任务、进程、线程 2.1 Linux:没人任务,只有进程与线程 进程相关函数: 线程

    2024年02月21日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包