赞
踩
在早年间,学C语言的时候,当时课本上一般都是void main
,后来老师和我们说,现在写代码一般都是 int main(...){ return 0; }
,2024年的我很好奇当年的我为啥不问问老师 return 4;
行不?return 10;
行不
在 C/C++
程序中,main函数的返回值通常用于向操作系统报告程序的执行状态。这个返回值是一个整数,通常有以下含义:
来看一个简单的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 脚本中用于获取上一个命令的退出状态码,其值范围是从 0
到 255
。这是因为退出状态码通常存储在一个 8 位的寄存器中,这意味着它只能表示 256 个不同的值,所以当主函数 return -1;
的时候,$?
返回的是255
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。