C语言主函数的返回值

C/C++语言中的主函数:作用、常见形式和返回值 0。 阅读详情

现代标准的C语言主函数形式总是带有一个int型的返回值,这个返回值返到哪里?又有什么用呢?

一、获取C语言程序的返回值

有如下程序:

int main(void)
{

    return 0;
}

我们要得到这个返回值,可惜的是要得到这个返回值,需要使用操作系统的平台特性,本文的实验在windows操作系统下进行。

在windows操作系统中,主函数的返回值默认下被保存在一个称为errorlevel的系统变量中。我们做实验。

实验一:系统获取C语言主函数的返回值

程序如下:

// main_return.c
#include <stdio.h>
int main(void)
{
    printf("hello,world\n");

    return 5;
}

编译:

gcc main_return.c -o main_return.exe

后执行main_return.exe程序,将输出hello,world,然后再windows控制台下,输入如下语句:

echo %errorlevel%

将打印 5。

这里echo是windows的控制台命令,可用于输出系统变量的值,其形式为:

echo %系统变量%

即,系统变量要用两个百分号引起来。如何使用这个变量呢?

在设计C程序时,根据程序执行的不同结果,返回不同的值,一般返回0表示顺利执行,返回不同的整数,表示执行过程中发生不同的错误,这个返回值可以作为一个错误代码。

二、windows批处理脚本中使用C程序的返回值

最常见的情形是,在windows脚本调用一个C程序,根据不同的返回值给出下一步操作。

实验二:多种可能返回值的C程序调用

下面C程序完成一个简单的除法运算,除法要求除数不能为0,当除数为0时,我们返回1,除数不为0时,即程序可以顺利执行时,返回0。程序如下:

// main_multiple_return.c
#include <stdio.h>
int main(void)
{
    double num1, num2;

    printf("Enter two number: ");
    scanf("%lf %lf", &num1, &num2);
    if(num2 == 0) 
        return 1;
    printf("The result is %.2f\n", num1 / num2);
    return 0;
}

首先单独执行这个程序,编译,执行后,若输入:

Enter two number: 4 3

将得到如下结果:

The result is 1.33

此时,执行:

echo %errorlevel%

将得到0。

若输入:

Enter two number: 4 0

将没有输出,执行:

echo %errorlevel%

将得到1。

下面写一个windows批处理脚本来自动执行这个程序并得到相应的返回值。

首先在main_multiple_return.c编译后得到可执行文件的目录下用记事本新建一个txt文件,然后名称改为test_main_return后缀名该文bat。全名为test_main_return.bat

然后用记事本打开,写入如下代码:

@echo off
title test_main_return
main_multiple_return.exe
if %errorlevel% == 0 (
    echo OK
) else if %errorlevel% == 1 (
    echo ERROR: The divisor cannot be 0
)
@pause

这个批处理脚本中,可以有两种方式指向,一是在控制台下在该脚本所在目录下直接执行test_main_return.bat,二是用鼠标双击执行。

第1行的@echo off用于关闭回显;

第2行的title test_main_return 用于设置弹出的控制台的标题;

第3行执行我们写的main_multiple_return.c 程序编译后生成的exe文件;

第4-8行用于判断errorlevel系统变量得到的值,并得到相应的动作;

第9行的@pause用于阻止控制台闪退,如果没有这一行,鼠标双击,脚本执行完成后,控制台会自动退出。

保存后,鼠标双击,可弹出一个控制台,标题为test_main_return,并运行了main_multiple_return.c程序,如下图所示。

当输入 4 3时,返回提示:

The result is 1.33
OK
请按任意键继续. . .

当输入 4 0时返回提示:

ERROR: The divisor cannot be 0
请按任意键继续. . .
三、其它C程序中使用C程序

可以编写一个C程序调用另外一个C程序,得到返回值。

实验三:C程序得到另一个C程序的返回值
// test_main_return.c
#include <stdio.h>
#include <windows.h>
int main(void)
{
    int return_value;

    printf("Execute main_multiple_return.exe\n");
    return_value = system("main_multiple_return.exe");
    if(return_value == 0) {
        printf("OK\n");
    } else if(return_value == 1) {
        printf("ERROR: The divisor cannot be 0\n");
    }

    return 0;
}

将这个程序和main_multiple_return.c放入到同一个目录下,编译后执行,结果为:

Execute main_multiple_return.exe
Enter two number:

当键入4 3时,返回为:

Execute main_multiple_return.exe
Enter two number: 4 3
The result is 1.33
OK

当键入为4 0时,返回为:

Execute main_multiple_return.exe
Enter two number: 4 0
ERROR: The divisor cannot be 0

C语言中的唯一函数:主函数 主函数是C语言中的唯一函数,它作为程序的入口点,负责程序的执行。通过编写主函数中的代码,我们可以实现各种功能丰富的C程序。它是程序的起点,也是程序开始执行的地方。主函数是C程序中必不可少的部分,没有主函数的程序是无法执行的。在上述例子中,主函数的参数列表包括两个参数:argc和argv。其中,argc表示命令行参数的个数,而argv是一个指针数组,存储了每个命令行参数的字符串。在运行程序时,可以在命令行中输入参数,程序会将这些参数打印出来。 阅读详情

相关推荐

STM32F407+LAN8720网口不通?别慌,手把手教你用CubeMX和LWIP搞定RMII以太网(附复位与PHY地址避坑指南)

本文详细解析了STM32F407与LAN8720通过RMII接口实现以太网通信的完整流程,重点解决了网口不通的常见问题。从硬件连接到CubeMX配置,再到LWIP网络参数设置,提供了复位时序、PHY地址配置等关键细节的避坑指南,帮助开发者快速排查和解决以太网通信故障。

weixin_33695082的博客 419

C语言main函数返回值详解

前言:本文程序代码均在Windows + mingw64环境下编译完成(gcc) C语言的main函数有两个标准写法 // C99加入两种 main 标准写法 int main(void) // 标准一写法 // 和 int main(int argc,char *argv[]) // 标准二写法 int main(int argc,char **argv) // ...

任逍遊 --- [专用空间] 3万+

Oracle19c时区升级实战:从32到42版本的数据泵TSTZ报错解决方案

本文详细介绍了Oracle19c时区版本从32升级到42的实战步骤,重点解决数据泵TSTZ报错问题。通过检查时区版本、下载补丁包、应用补丁及执行升级脚本等关键操作,确保数据库时区数据更新,避免夏令时转换错误和历史时区规则不匹配等问题。文章还提供了常见问题排查和升级后的注意事项,帮助DBA高效完成时区升级任务。

n7o8p的博客 284

C++函数的返回值——返回引用类型&非引用类型

函数的返回主要分为以下几种情况: 1、主函数main的返回值: 允许主函数main没有返回值就可结束;可将主函数main返回的值视为状态指示器,返回0表示程序运行成功,其他大部分返回值则表示失败。 2、返回非引用类型: 函数的返回值用于初始化在调用函数时创建的临时对象(temporary object),如果返回类型不是引用,在调用函数的地方会将函数返回值复制给临时对象。 在求解表达...

weixin_30535167的博客 707

VCS多lib编译实战:如何高效处理Verilog模块重命名与分开编译

本文深入探讨了在复杂SoC设计中,如何利用VCS工具实现多库编译,以高效处理Verilog模块重命名与分开编译的工程难题。通过解析synopsys_sim.setup配置、Config映射机制,并提供完整的自动化脚本实战指南,帮助工程师构建健壮、可维护的编译环境,从而显著提升大型项目的编译效率和代码管理灵活性。

weixin_29169505的博客 357

使用pytorch构建LSTM_AE模型的两种方式

2.基本LSTM_Unit计算——基本LSTM_AE结构 3.自定义LSTM_Unit计算——自定义LSTM_AE结构 1.LSTM-Encoder-Decoder模型结构及简要解析 图基本lstm计算单元

qq_37840762的博客 7273

C 基本语法

C 基本语法

QYgujingjing的专栏 624

2024年12月数据月报

2024年12月大数据月报,为您准备了阿里、字节、百度等大厂150多篇实践案例

SmartSi 2654

C语言 函数的返回值

C语言 函数的返回值

NuYoaH502329的博客 9976

Silly Tavern酒馆ai角色卡与世界书导入超详细教程!

前几天,我在设置 Silly Tavern 的时候,想导入一个喜欢的角色卡,结果发现不少朋友其实已经下载好了角色资源,但却不知道怎么正确导入使用。这篇文章就作为一份完整的新手向教程,一步步教你如何在 Silly Tavern 中导入角色卡、世界书,并实现与 AI 角色的真实互动。如果你是第一次接触这个功能,建议先收藏慢慢看~点击菜单栏上的 图标,打开角色界面。初始状态下,你应该只看到默认角色 Seraphina。你可以先点击她的头像尝试聊天,也可以导入自己喜欢的角色。点击导入按钮,选择你下载好的角色卡(通

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2万+

SAP OData 开发从入门到提高教程的目录

笔者 18 年的 SAP 技术开发生涯,对 SAP OData 服务的开发,测试,发布,部署,测试,及基于各种不同 SAP 技术实现的 OData 服务的幕后技术实现细节和使用场合,均有着深入的研究。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 7239

测试C语言主函数的返回值

C语言主函数的返回值主要分为 return 0; return 1 三种形式 分别为正常结束,非正常结束; 下面用代码来测试一下 int main(int argc, char **argv) { printf("My name is DWL\n"); return 0; } 这里如果./a.out 如果返回值为真,那么 && 后面的语句才能执行。 倘若改为 return 1; 两个做对比我们可以看到结果,这里的返回值被编译器接收到了,并

qq_41505080的博客 806

Python 爬虫实战:Twitter 数据定向抓取(特定话题 + 用户推文爬取与分析)

在社交媒体研究、舆情监测和市场分析等领域,Twitter 数据具有极高的价值。本文将详细介绍如何使用 Python 构建一个完整的 Twitter 数据爬取系统,包括特定话题和用户推文的爬取与分析。我们将涵盖从认证到数据存储、清洗、分析和可视化的全流程。

u014481728的博客 1035

C语言主函数返回值含义

上大学时候我学习C语言的时候主函数的类型还可以用void类型,毕业之后想再次加深一下编程的水平发现我找的编译器居然要求主函数必须具有int类型的返回值。简单的看了一点教程以及网络上的介绍之后,也不管三七二十一直接照抄教程中的说明,主函数返回值写上一个return 0。可这到底什么意思呢?        写一个常用的简单代码如下: #include"stdio.h"   int main(v

小灰笔记 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

c语言的功能函数返回值怎么在主函数调用_C语言学习|函数的应用《一》

C语言为程序的结构提供了函数和模块一、函数的定义与使用《编程之道》中写道:“一个程序应该是灵活自由的、它的子过程就像串在一根线子上的珍珠。”子过程在C语言中被称为”函数“。程序的执行从主函数开始,往复、循环、迭代地调用一个又一个函数。函数的分类1.库函数printf()、scanf()等都是ANSIC标准的库函数。任何ANSI C的编译器,无论在什么的平台,都必须提供这些函数供用户使用。仅调用AN...

weixin_39757212的博客 2662

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

27 C 语言编程核心:main 主函数(基本形式、返回值、参数、命令行传参)、多文件编程实践

本文深入解析了 C 语言编程中的核心要点,包括 main 主函数的作用与基本形式、命令行参数 argc 与 argv 的处理方式、多文件编程的项目结构搭建与编译方法。通过实例演示了如何利用命令行参数实现程序动态输入,以及多文件编程如何提升项目可维护性与扩展性。

大模型全栈工程师 · Thanks_ks 3023

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

关于对于C语言中主函数参数接返回值的理解

main函数的返回值 main函数的返回值用于说明程序的退出状态。如果返回0,则代表程序正常退出;返回其它数字的含义则由系统决定。通常,返回非零代表程序异常退出。 很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( )。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The de

YinJianxiang的博客 2030

C语言主函数返回值问题:return type of 'main' is not 'int' [-Wmain]

当c语言main函数,返回值是void时,有提醒:return type of 'main' is not 'int' [-Wmain]

jh0703的博客 1万+

主函数的返回值返回给谁_C语言函数学习-函数的返回值

文章logo函数的值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。如调用正弦函数取得正弦值,调用例8.1的max函数取得的最大数等。对函数的值(或称函数返回值)有以下一些说明:1) 函数的值只能通过return语句返回主调函数。return 语句的一般形式为:return 表达式;或者为:return (表达式);该语句的功能是计算表达式的值,并返回给主调函数。在函数中允许...

weixin_27729671的博客 2096

c语言函数调用后必须带回返回值?

文章是根据问题摘录不同作者的回答摘录补充而成, void的作用在于:   (1)对函数返回的限定;   (2)对函数参数的限定。 先给一个例子定义函数 返回值函数名(参数1,参数2,参数3,.......) {内容} int sum (int a,int b) { int c; c=a*b; return c; } 其中第一个int是返回值就是别的函数调用此函数时这个函数给他的一个值。 形式一: 如果调用时不需要返回值,则函数写为 voidsum(inta,intb){....}...

爱吃炸鸡的小猪's blog 7768

c语言中的主函数有什么用,c语言中主函数的作用是什么

c语言中主函数的作用是什么发布时间:2020-10-15 17:51:01来源:亿速云阅读:79作者:小新c语言中主函数的作用是什么?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!主函数在c语言里的作用是作为程序的入口,同时也是程序的出口,通常我们还可以指定一个返回值再退出,以表明程序最后的结果是什么样的。主函数:一...

weixin_34171095的博客 5026

C语言主函数main调用带有结构体指针参数的函数的指定类型返回值

源代码: #include <stdio.h> #include <string.h> struct book { char bookname[30]; double quantity; }; double fun(struct book *q)//函数类型为double,返回值也必须是double { double ret1; char ret2; ret1 = q->quantity + 2020; // ret2 = q-

源代码杀手的博客 1090

主函数的返回值返回给谁,'main'函数的返回值在哪里去?

In C, a function always returns its value to the calling function and never to itself (if return type is not void). Like,int main()But since 'main' function is called by the Operating System, which is...

weixin_34563472的博客 421

C/C++主函数的定义(return的作用)!

 关于C语言中return的一些总结 return是C++预定义的语句,它提供了种植函数执行的一种放大。当return语句提供了一个值时,这个值就成为函数的返回值. 说到return,有必要提及主函数的定义,下面是从网络上找到的资料,好好消化吧,对了解主函数中返回值的理解有很大的帮助. 很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过vo

风清扬IT博客 7116

c语言函数返回数组的值,函数返回值为一个数组,想要在主函数中用到这个数组,不知道怎么办了,求助!!!...

已结贴√问题点数:20回复次数:5 函数返回值为一个数组,想要在主函数中用到这个数组,不知道怎么办了,求助!!!定义了函数bubble_sort(int N,int A[N]),其返回值为A[N],现在主函数中需要用到这个A[N],请问怎么调用它?源码:1#include 234 int bubble_sort(int N,int A[N])5 {6int i,j,temp;...

weixin_33364925的博客 309

C语言返回值

C语言函数在结束的时候可以用一个数字表示运行的结果,这个数字就叫做函数的返回值。 主函数应该有一个返回值。如果这个返回值是0就表示程序希望计算机认为它正常结束,如果不是0就表示程序希望计算机认为它是出错的。 除主函数外,其他函数也有自己的返回值,哪怕是返回值是void。 这也是我们低耦合的重要依托。 关键字:return 有两个用途:   1、结束函数的执行。   2、指定返回的数值...

weixin_33774308的博客 142
上一篇: C语言主函数的形式
下一篇: 手动编译C51程序
金达南
博客等级 码龄3年 137粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值