关于main函数

深度剖析c语言main函数---main函数的返回值   在接下来的几篇博文中,我将对c语言的main函数进行深入的剖析,分别从函数返回值,函数参数,以及函数的执行顺序对main函数作一总结。本文主要聊聊main函数的返回值。 main函数的返回值   main函数的返回值用于说明程序的退出状态。如果返回0,则代表程序正常退出。返回其它数字的含义则由系统决定。通常,返回非零代表程序异常退出。 void main()   有一些书上的,都使... 阅读详情
main()主函数 

每一个C程序都必须有一main()函数, 可以根据自己的爱好把它放在程序的某个地方。有些程序员把它放在最前面,

而另一些程序员把它放在最后面, 无论放在哪个地方, 以下几点说明都是适合的。


1. main() 参数
在Turbo C2.0启动过程中, 传递main()函数三个参数: argc, argv和env。
* argc:  整数, 为传给main()的命令行参数个数。
* argv:  字符串数组。
在DOS 3.X 版本中, argv[0] 为程序运行的全路径名; 对DOS 3.0以下的版本, argv[0]为空串("") 。
argv[1] 为在DOS命令行中执行程序名后的第一个字符串;
argv[2] 为执行程序名后的第二个字符串;
...
argv[argc]为NULL。
*env:  安符串数组。env[] 的每一个元素都包含ENVVAR=value形式的字符串。其中ENVVAR为环境变量如PATH或87。

value 为ENVVAR的对应值如C:/DOS, C:/TURBOC(对于PATH) 或YES(对于87)。
Turbo C2.0启动时总是把这三个参数传递给main()函数, 可以在用户程序中说明(或不说明)它们,

如果说明了部分(或全部)参数, 它们就成为main()子程序的局部变量。

请注意: 一旦想说明这些参数, 则必须按argc, argv, env 的顺序, 如以下的例子:
main()
main(int argc)
main(int argc, char *argv[])
main(int argc, char *argv[], char *env[])
其中第二种情况是合法的, 但不常见, 因为在程序中很少有只用argc, 而不用argv[]的情况。


2.以下提供一样例程序EXAMPLE.EXE,  演示如何在main()函数中使用三个参数:
     /*program name EXAMPLE.EXE*/
     #include <stdio.h>
     #include <stdlib.h>
     main(int argc, char *argv[], char *env[])
     {
          int i;
          printf("These are the %d  command- line  arguments passed  to main:/n/n", argc);
          for(i=0; i<=argc; i++)
            printf("argv[%d]:%s/n", i, argv[i]);
          printf("/nThe environment string(s)on this system are:/n/n");
          for(i=0; env[i]!=NULL; i++)
            printf(" env[%d]:%s/n", i, env[i]);
     }
如果在DOS 提示符下, 按以下方式运行EXAMPLE.EXE:
C:/example first_argument "argument with blanks"  3  4  "last  but one" stop!
注意: 可以用双引号括起内含空格的参数, 如本例中的:"argument with blanks"和"Last but one"。

结果是这样的:
     The value of argc is 7
     These are the 7 command-linearguments passed to main:
     argv[0]:C:/TURBO/EXAMPLE.EXE
     argv[1]:first_argument
     argv[2]:argument with blanks
     argv[3]:3
     argv[4]:4
     argv[5]:last but one
     argv[6]:stop!
     argv[7]:(NULL)
     The environment string(s) on this system are:
     env[0]: COMSPEC=C:/COMMAND.COM
     env[1]: PROMPT=$P$G            /*视具体设置而定*/
     env[2]: PATH=C:/DOS;C:/TC      /*视具体设置而定*/
 
应该提醒的是: 传送main() 函数的命令行参数的最大长度为128 个字符 (包括参数间的空格),  这是由DOS 限制的。
-------------------------------------------------------------------------

几个相关的链接http://www.cnread.net/cnread1/dnwl/cxsj/c/cyyb/031.htm
http://www.cnread.net/cnread1/dnwl/cxsj/index.html

编程语言一定需要main函数吗?函数入口一定是main吗?main方法可以是private私有?main函数一定返回int吗?exit(n)并不完全等价main函数return (n)? 为了配合shell获取返回值,一般而言shell认为程序返回值为0代表正确,非0代表失败。 阅读详情

相关推荐

编程语言一定需要main函数吗?函数入口一定是main吗?main方法可以是private私有吗?main函数一定返回int吗?exit(n)并不完全等价main函数return (n)?

为了配合shell获取返回值,一般而言shell认为程序返回值为0代表正确,非0代表失败。

编程语言开发、框架原理、编程思想、最佳实践技巧经验分享。致力于各种编程技术的技巧经验干货分享,讲解开发避坑技巧,追踪开发前沿技术,实战展开解决难题。 程序员小迷助您在编程路上越走越好! 1008

main函数和启动例程

2. main函数和启动例程 请点评为什么汇编程序的入口是_start,而C程序的入口是main函数呢?本节就来解释这个问题。在讲例 18.1 “最简单的汇编程序”时,我们的汇编和链接步骤是:$ as hello.s -o hello.o$ ld hello.o -o hello以前我们常用gcc main.c -o main命令编译一个程序,其实也可以分三

passionboyxie的专栏 1172

VLA模型(具身智能入门十)

Vision Language Action(VLA)模型VLA模型是机器人领域的“感知-理解-执行”一体化框架,通过Transformer架构融合视觉、语言、动作模态,核心目标是让机器人在自然语言驱动下,自主完成复杂操控任务。其定义的核心在于“跨模态统一”与“具象化行动”——不仅能“看懂”“听懂”,更能“做出正确的动作”,是实现通用机器人智能的关键方向。提供通用序列建模骨架,让视觉、语言、动作能以“序列”形式统一处理;ViT将视觉输入转换为序列特征,提供“看”的能力;LLMs。

weixin_39699362的博客 9918

从main函数启动过程说起

先贴代码: #include const int A=10; static int b=30; static char msg[]="hello"; int c; static int add(int a,int b) { return a+b; } void printmsg1(int a,int b) { int d= add(a,b); p

1760

Tesseract-Ocr踩坑下载以及进行检验

1 OCR,即Optical Character Recognition:光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。下载完成后进行解压找到这两个,然后复制到之前下载Tesseract-Ocr的tessdata文件下。可能会出现报错说chi下载的问题咱们不用管继续ok让它先下载完毕,后续会有下载chi的步骤。四、检验tesseract使用(将以下图片进行下载我这里将以下图片命名为3.png)我这里选的是2024年的版本如果下载不了;4 在安装的时候(找到下载的exe文件,双击)

m0_51428325的博客 1915

AI编程助手Cursor如何革新经济学研究:从计量模型到可视化全流程实战

在数据科学和人工智能技术蓬勃发展的今天,如何高效地将前沿AI工具融入专业领域的研究工作流,成为提升科研效率的关键。其核心原理在于通过自然语言交互,将研究者的专业问题转化为机器可执行的指令,从而实现人机协作的范式转移。这一技术的核心价值在于大幅降低非计算机背景研究者的编程门槛,将精力从繁琐的代码实现中解放出来,更聚焦于学科本身的思想与逻辑。尤其在经济学、金融学等高度依赖数据分析和计量建模的领域,AI编程助手能够快速处理数据清洗、模型估计、可视化及结果解释等任务。具体到应用场景,研究者可以利用结构化提示词工程,

weixin_42531579的博客 296

main方法_main方法启动过程

main方法想必大家都很熟悉了,但是具体是怎么启动的, 不知道是否知道, 今天简单说下Demopublic class MyString { public static final int var = 1; public static void main(String[] args) { System.out.println("aa"); ...

weixin_39640444的博客 1204

在VScode中配置Python开发环境(详细图片文字结合)

需要用到的软件下载包在官网里找一下,在window下的点击安装就行了;找一个3.8到3.10版本差不多都完善跟的上;

m0_72811193的博客 1599

服务器的主函数main

聊天室服务器的主函数: #include "chatserver.hpp" #include "chatservice.hpp" #include <iostream> #include <signal.h> using namespace std; //处理服务器ctrl+c结束后,进行重置user的状态信息 void resetHandler(int) { ChatService::instance()->reset(); //调用重置函数 exit(0

TABE_的博客 300

LabVIEW实现TCP通信

在本节中,我们将简要探讨TCP通信的基础知识,并以工业物联网平台TLINK中的云端设备数据发布设计为例,详细阐述在互联网环境下TCP客户端应用程序设计的基本方法。

不脱发的程序猿 1959

文末含资料链接和视频讲解!YOLOv8集成CoordAtt注意力机制详细教程

本文详细介绍了如何在YOLOv8目标检测框架中集成CoordAtt注意力机制。首先解析了CoordAtt的工作原理,它通过分解式池化将位置信息嵌入到通道注意力中,相比传统注意力机制具有更好的空间信息保持能力。然后提供了PyTorch实现代码解析,包括自适应平均池化、Hard-Swish激活函数等关键实现细节。最后概述了YOLOv8架构,为后续集成CoordAtt提供基础。该教程适合具备深度学习基础的开发者,将理论与实践结合,帮助读者掌握这一目标检测优化技术。

FJN110的博客 266

主函数main和程序入口_start

主函数main和程序入口_start 众所周知,C程序的入口并不是main函数,而是_start函数,只不过gcc链接器默认会依赖一些库,然后_start会调用main。 那么_start做了什么呢?调用关系是怎样的? 一、概括 下图是Linux中一个可执行程序执行时,各个模块的调用情况: 这张图几乎包含了,一个程序,从加载到执行的所有过程,注意,main函数的位置。 只有main函数部分是可以自己写的,其余部分都是加载器干的。 二、具体分析 想具体分析,可以写一个C程序然后反汇编,查看汇编代码。 但是,

m0_55708805的博客 4699

全志F1C100S/F1C200S学习笔记(1)——基础简介及资料

资料: 荔枝派资料下载站 荔枝派github 荔枝派中文论坛 荔枝派DIY-github资料 荔枝派Nano 全流程指南 芒果派 坑网

丨晋丨 1万+

python中的main函数

python是一种解释型脚本语言,和C/C++语言不同,C/C++程序从main函数开始执行,python程序从开始到结尾顺序执行。先总结下python中的main函数的作用:让模块(函数)可以自己单独执行(调试),相当于构造了调用其它函数的入口,这就类似于C/C++里面的main函数了。 一方面:我们想要自己单独执行(调试) 这里我们实际调试一下(假设这个文件是test.py): #t...

菜鸟奇遇记 13万+

时间序列分析(Time Series Analysis) 原理与代码实例讲解

时间序列分析(Time Series Analysis) - 原理与代码实例讲解 作者:禅与计算机程序设计艺术 / Zen and the Art of Computer Programming 关键词:时间序列预测,ARIMA模型,状态空间模型,SARIMA模型,机器学习

AI天才研究院 1246

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Python中main函数

Python是最需要学习的编程语言之一。Python中的main函数充当任何程序的执行点。定义Python编程中的main函数是启动程序执行的必要之处,因为它只在程序直接运行时执行,而不是在作为模块导入时执行。 什么是Python函数? 函数是可重用代码的挡路,它构成了使用编程语言执行操作的基础。它们用于对输入数据执行计算,并将输出呈现给最终用户。 我们已经了解到,函数是为完成特定任务而编写的一段代码。Python名称中有三种类型的函数内置函数、用户定义函数和匿名函数。现在,Main函数就像Python中的

IT赶路人的博客 6万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

c语言其他函数调用main函数,C语言中的main函数以及main函数是如何被调用的

main函数是C语言中比较特殊的函数,C程序总是从main函数开始执行,main函数的原型是:int main(int argc, char *argv[]);其中argc是命令行参数的个数,argv是指向参数的各个指针所构成的数组。当内核执行C程序时(使用一个exec函数),在调用main前先调用一个特殊的启动例程(什么鬼?)。可执行程序文件将此启动例程指定为程序的起始地址——这是由连接编辑器设...

weixin_29179311的博客 7931

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C++ main函数及main函数的参数

C++ main函数及main函数的参数 1、main函数的几种形式 int main() int main(int argc) int main(int argc,char** argv)//int main(int argc,char* argv[]) 2、argc表示命令行参数的个数、argv表示命令行参数的值 (1)写个小代码,用命令行运行 #include<stdio.h> int main(int argc, char* argv[]) { printf("argc=%d \n

qq_44873474的博客 3094

python中main函数的用法

什么场景下会有main函数? 当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行。 main函数的作用? __ name__ == '__ main__'是Python的main函数入口。并非说,加入这句才能使用python xxx.py来执行,而是说,这里可以判断,当前是否是直接被python直接调用执行。 main为什么只有文件当作执行程序...

python学习者的博客 1万+

python main函数返回值,Python main函数

Python main函数Python main函数教程Python 中的 main() 函数只有当该 Python 脚本直接作为执行程序时才会执行,当该 Python 脚本被作为模块被导入时,其中的 main() 函数将不会被执行。这是由于两方面原因,一方面,main 函数是所有执行程序的入口,另一方面,Python 的解释器是顺序执行脚本的并且不会调用任何不属于程序本身的代码和Python m...

weixin_35677043的博客 7537

main函数详解

c语言main函数正确写法: int main(void) int main(int argc, char **argv) int main(int argc, char *argv[ ]) main函数的返回值 函数在设计的时候设计了参数和返回值,参数是函数的输入,返回值是函数的输出。函数的额本质是一段代码,一个数据处理器。因为函数需要对外输出数据(实际上是函数运行的一些结果值),因此函数需要返回值。 从形式上来说,函数被另一个函数所调用,返回值作为函数表达式的值返回给调用函数...

ygrea的博客 6278

看ACE如何劫持main函数

看ACE如何劫持main函数 用过ACE的都知道,程序的main函数必须写成int main (int argc, char *argv[])的形式,这是为什么呢,看了ACE的源码才知道,原来是…… 看ace/OS_main.h中的一段代码,就会恍然大悟: #       define main \ ace_main_i (int, char *[]); \ ACE_BEG

iw1210的专栏 1789

main函数的参数

main函数可以不带参数,也可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为:     main (argc,argv) C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:

yhawaii的专栏 5万+

Kotlin main函数

程序从main()开始执行;你可以用参数args向程序传入数据;你可以通过命令行或 IDE 设置这些参数;Kotlin 1.3 以后,main()可以没有参数;同一个文件只能有一个带参数的main()和一个不带参数的main();其他写法的main()会被当作普通函数,不会自动运行。现在,你已经学会了使用main()和程序参数了。你可以不改代码,仅通过命令行传参就改变程序行为。这是每个程序员都必须掌握的基础技能!

Hello World! 843

main函数的return

最近的一段时间在return这个关键字进行了一点的探究,主要是涉及到调用return之后函数会进行什么操作。 return是一个关键字,调用return会进行函数的返回,将后面的参数返回给调用者(main函数也是被调用的),并销毁调用堆栈。 以上是return函数的作用,接下来主要看一下main函数的return之后会发什么。测试代码如下: int main() { return...

小Z的博客 1万+

认识main函数

一、main函数的写法 51单片机里面我们写main函数都是以 https://blog.youkuaiyun.com/z_ryan/article/details/80985101 void main() {} 这种形式来写的,其实这样写在51中是可以的,但是严格来说是不规范的。 规范的写法一共有三种: 1.无参数 main 函数不带参数的写法 1 #include <stdio.h> ...

C学习 1569
上一篇: 表单域合法性验证等问题
下一篇: 常用javascript函数
firerain
博客等级 码龄25年 4粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值