[C++基本功] C/C++中main函数return 0;什么意思

在早年间,学C语言的时候,当时课本上一般都是void main,后来老师和我们说,现在写代码一般都是 int main(...){ return 0; },2024年的我很好奇当年的我为啥不问问老师 return 4; 行不?return 10; 行不

C/C++ 程序中,main函数的返回值通常用于向操作系统报告程序的执行状态。这个返回值是一个整数,通常有以下含义:

  • 返回0:表示程序成功执行,没有错误。
  • 返回非0值:表示程序执行过程中遇到了错误或异常情况。具体的非0值可以表示不同类型的错误,但这通常由程序自己定义

来看一个简单的C程序

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[]) {
    if (argc > 1 && strcmp(argv[1], "success") == 0) {
        // 如果命令行参数是"success",则返回0
        return 100;
    } else if (argc > 1 && strcmp(argv[1], "failure") == 0) {
        // 如果命令行参数是"failure",则返回1
        return 60;
    } else {
        // 如果没有命令行参数或参数不是"success"或"failure",则返回-1
        return 80;
    }
}

编译之后,生成一个可执行文件 main

写一个 bash 脚本来执行对应的情况:

$? 在 Bash 脚本中用于获取上一个命令的退出状态码

#!/bin/bash

# 编译C程序
# gcc -o main main.c

# 运行程序并传递"success"作为参数,然后打印返回值
./main success
echo "Return value for 'success': $?"

# 运行程序并传递"failure"作为参数,然后打印返回值
./main failure
echo "Return value for 'failure': $?"

# 运行程序但不传递任何参数,然后打印返回值
./main
echo "Return value for no argument: $?"

执行情况:

Return value for 'success': 100
Return value for 'failure': 60
Return value for no argument: 80

$? 在 Bash 脚本中用于获取上一个命令的退出状态码,其值范围是从 0255。这是因为退出状态码通常存储在一个 8 位的寄存器中,这意味着它只能表示 256 个不同的值,所以当主函数 return -1; 的时候,$? 返回的是255

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值