当前位置:   article > 正文

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

[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;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

编译之后,生成一个可执行文件 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: $?"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

执行情况:

Return value for 'success': 100
Return value for 'failure': 60
Return value for no argument: 80
  • 1
  • 2
  • 3

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/1012930
推荐阅读
相关标签
  

闽ICP备14008679号