【C语言入门】exit()函数:终止程序执行

c语言练习94:分割链表 给你一个链表的头节点head和一个特定值x,请你对链表进行分隔,使得所有x的节点都出现在x的节点之前。你不需要每个分区中各节点的初始相对位置。 阅读详情
AI摘要

本文详细介绍了C语言中exit()函数,它用于终止程序执行。阐述了其执行流程,包括调用终止处理函数、刷新缓冲区等。还说明了与return的区别、状态码含义、使用注意事项,给出典型应用场景示例及调试查看状态码的方法,体现了其灵活性、安全性和跨平台性。

1. 基础定义:从标准库到函数原型

exit() 函数是 C 语言标准库 stdlib.h 中定义的一个核心函数,用于终止当前程序的执行。其函数原型如下:

void exit(int status);

  • 参数 status:一个整数,表示程序的 “退出状态码”。操作系统(如 Windows、Linux)会根据这个值判断程序是否正常结束。
    • 通常约定:status = 0 或 EXIT_SUCCESS(宏定义,值为 0)表示程序正常结束;
    • status ≠ 0(如 EXIT_FAILURE,宏定义值为 1)表示程序异常终止(具体含义由开发者自定义)。
2. 执行流程:exit() 如何 “优雅” 终止程序?

exit() 的 “优雅” 体现在它会在终止前完成一系列清理操作,确保程序不会留下 “烂摊子”。具体步骤如下(按执行顺序):

2.1 调用 “终止处理函数”(通过 atexit() 注册)

C 语言允许开发者通过 atexit() 函数注册终止处理函数(最多 32 个,具体数量由编译器决定)。这些函数会在 exit() 被调用时,按注册的逆序执行。

示例:用 atexit() 注册清理函数

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

void cleanup1() {
    printf("执行清理操作1(最后注册的先执行)\n");
}

void cleanup2() {
    printf("执行清理操作2(最先注册的后执行)\n");
}

int main() {
    atexit(cleanup1);  // 注册顺序:cleanup2 → cleanup1
    atexit(cleanup2);
    exit(0);  // 触发终止,执行顺序:cleanup1 → cleanup2
}

输出结果:

执行清理操作1(最后注册的先执行)
执行清理操作2(最先注册的后执行)
2.2 刷新所有标准 I/O 缓冲区

程序运行时,为了提高效率,输出数据(如 printf 的内容)通常不会立即写入屏幕或文件,而是先存储在 “缓冲区” 中。exit() 会强制将所有未刷新的缓冲区数据写入目标(如屏幕、文件),确保数据不丢失。

2.3 关闭所有打开的标准 I/O 流

fopen() 打开的文件、stdin/stdout/stderr 等标准流,都会被 exit() 自动关闭,释放系统资源(如文件描述符)。

2.4 删除临时文件(tmpfile() 创建的)

如果程序用 tmpfile() 创建了临时文件,exit() 会自动删除这些文件,避免临时文件堆积。

2.5 向操作系统返回状态码

最后,exit() 会将参数 status 传递给操作系统。操作系统可以通过特定方式(如 Linux 的 echo $? 命令)获取这个状态码,用于判断程序是否正常结束。

3. 与 return 的核心区别:何时用 exit()?

在 main 函数中,return n 等价于 exit(n)(因为 main 函数返回后,系统会隐式调用 exit())。但在其他函数中,return 只是返回上一级调用,不会终止程序。

必须用 exit() 的场景:

  • 在非 main 函数中终止程序:例如,在 read_config() 函数中发现配置文件损坏,需要直接终止程序,而不是返回错误码让 main 处理。
  • 需要立即终止程序:例如,检测到内存分配失败(malloc() 返回 NULL),继续运行可能导致崩溃,此时直接 exit(EXIT_FAILURE) 更安全。
4. 状态码的深层含义:操作系统如何处理?

exit(status) 的 status 参数并非无意义的数字,而是程序与操作系统 “沟通” 的重要信号。不同操作系统对状态码的解释略有差异,但通用规则如下:

4.1 标准约定:EXIT_SUCCESS 和 EXIT_FAILURE

C 标准库定义了两个宏:

#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1

  • EXIT_SUCCESS(0):表示程序 “成功完成所有任务”;
  • EXIT_FAILURE(1):表示程序 “因错误终止”。
4.2 扩展含义:自定义状态码

开发者可以自定义非 0 状态码(通常 1~255,具体范围由操作系统决定),用于传递更详细的错误信息。例如:

  • exit(2):表示 “文件未找到”;
  • exit(3):表示 “权限不足”;
  • exit(100):表示 “网络连接失败”。
4.3 操作系统的实际应用
  • Linux/Unix:通过 echo $? 命令查看最后一个程序的退出状态码;
  • Windows:通过 %ERRORLEVEL% 环境变量获取;
  • 脚本语言(如 Shell、Python):可以根据状态码决定后续操作(例如 “如果程序返回 0,继续执行下一步;否则报错”)。
5. 注意事项:避免 “不优雅” 的终止

虽然 exit() 会自动清理部分资源,但以下情况仍需开发者手动处理:

5.1 动态分配的内存(malloc/calloc)

exit() 不会自动释放通过 malloc() 分配的内存!如果程序在 exit() 前未调用 free(),可能导致:

  • 操作系统回收进程内存(现代系统通常会自动回收);
  • 但在嵌入式系统或某些严格环境中,可能被视为 “内存泄漏”,影响后续程序运行。
5.2 自定义资源(如数据库连接、网络套接字)

exit() 只能处理标准库管理的资源(如文件流),但无法自动关闭数据库连接、网络套接字等自定义资源。开发者需要在 atexit() 注册的清理函数中手动释放这些资源。

5.3 多线程程序的特殊问题

在多线程程序中,调用 exit() 会终止所有线程(包括未完成的线程),可能导致数据不一致或资源未释放。更安全的做法是:先终止子线程,再调用 exit()。

6. 对比:exit() vs abort() vs _Exit()

C 标准库中还有几个与 “终止程序” 相关的函数,需要明确区分:

函数头文件特点
exit()stdlib.h执行完整清理(如刷新缓冲区、调用 atexit() 函数),正常终止。
abort()stdlib.h异常终止(如断言失败),不执行清理,可能生成核心转储文件(用于调试)。
_Exit()stdlib.h直接终止,不执行任何清理(比 exit() 更 “暴力”)。
7. 历史与标准:从 C89 到 C17

exit() 函数自 C89 标准(1989 年)起就被纳入 C 语言核心库,后续标准(C99、C11、C17)仅对其细节进行微调(如扩展 atexit() 可注册函数的数量限制)。其设计目标是:提供一个跨平台的、标准化的程序终止接口,避免不同操作系统的底层差异影响开发者。

8. 示例代码:exit() 的典型应用场景
8.1 检查文件打开失败
#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *file = fopen("data.txt", "r");
    if (file == NULL) {
        perror("无法打开文件");  // 输出错误信息(如“无法打开文件: No such file or directory”)
        exit(EXIT_FAILURE);    // 因错误终止程序,返回状态码 1
    }
    // ... 正常操作文件 ...
    fclose(file);
    exit(EXIT_SUCCESS);  // 正常终止,返回状态码 0
}
8.2 内存分配失败处理
#include <stdio.h>
#include <stdlib.h>

int main() {
    int *array = malloc(100 * sizeof(int));
    if (array == NULL) {
        fprintf(stderr, "内存分配失败!\n");
        exit(EXIT_FAILURE);  // 内存不足时终止程序
    }
    // ... 使用 array ...
    free(array);  // 手动释放内存(即使后续调用 exit(),也建议显式释放)
    exit(EXIT_SUCCESS);
}
8.3 多函数调用中的终止
#include <stdio.h>
#include <stdlib.h>

void check_condition(int value) {
    if (value < 0) {
        printf("检测到非法值:%d,程序终止\n", value);
        exit(EXIT_FAILURE);  // 在子函数中直接终止程序
    }
}

int main() {
    check_condition(-5);  // 触发 exit(),程序终止
    printf("这行代码不会执行\n");
    return 0;
}
9. 调试技巧:如何查看 exit() 返回的状态码?
9.1 Linux/Unix 系统

在终端运行程序后,输入 echo $? 命令,即可查看最后一个程序的退出状态码。例如:

$ ./my_program
无法打开文件: No such file or directory
$ echo $?
1  # 对应 EXIT_FAILURE
9.2 Windows 系统

在命令提示符(CMD)中运行程序后,输入 echo %ERRORLEVEL% 查看状态码:

C:\> my_program.exe
内存分配失败!
C:\> echo %ERRORLEVEL%
1
9.3 IDE 调试工具

在 Visual Studio、CLion 等 IDE 中调试程序时,可以通过 “断点” 或 “监视窗口” 直接查看 exit() 的参数 status,快速定位终止原因。

10. 总结:exit() 的核心价值

exit() 是 C 语言中 “程序生命周期管理” 的关键函数,其核心价值在于:

  • 灵活性:可以在程序任何位置触发终止,适用于错误处理、紧急退出等场景;
  • 安全性:通过自动清理(如刷新缓冲区、关闭文件)避免资源泄漏;
  • 跨平台:遵循 C 标准,确保在不同操作系统上行为一致。

形象化解释:用 “超市营业” 理解 exit() 函数

想象你开了一家小超市,每天的营业流程就像程序的执行过程。

1. 正常关门:main 函数的 return

超市每天晚上 10 点准时关门(程序运行到 main 函数末尾),你会做这些事:

  • 把货架上的商品整理好(释放程序占用的内存、关闭打开的文件);
  • 给收银员结清当天的账目(刷新输出缓冲区,确保所有数据都写入文件或屏幕);
  • 锁好大门,贴上 “今日闭店” 的告示(告诉操作系统:程序正常结束)。
    这就像 main 函数执行完所有代码后,用 return 0 结束程序 —— 一切都是计划内的,有条不紊。
2. 紧急闭店:exit() 函数的 “强制终止”

但如果有一天,超市里突然着火了(程序遇到严重错误,比如文件无法打开、内存分配失败),这时候你不能再慢慢整理货架、结清账目了!你需要立刻:

  • 按下火警警报(调用提前 “登记” 的紧急处理函数,比如用 atexit() 注册的清理函数);
  • 让所有顾客和员工立刻离开(终止所有正在运行的代码,包括其他函数中的未完成操作);
  • 拨打 119 并告诉消防员 “超市因火灾关闭”(返回一个 “错误码” 给操作系统,比如 EXIT_FAILURE);
  • 最后锁门离开(彻底终止程序,释放所有资源)。

这就是 exit() 函数的作用:在程序任何位置触发 “紧急终止”,跳过后续代码,执行必要的清理,然后彻底结束程序。

3. 关键区别:return vs exit()
  • return 是 “计划内结束”,只能在 main 函数中 “自然收尾”;
  • exit() 是 “紧急按钮”,可以在程序的任何位置(比如某个子函数里)直接触发终止,比 return 更 “强势”。

 

EXIT_SUCCESS、EXIT_FAILURE、return的区别和用法 EXIT_SUCCESS 和 EXIT_FAILURE 是C语言标准库中定义的两个宏,用于表示程序退出时的状态。在大多数系统中, 阅读详情

相关推荐

C 语言程序终止的艺术:理解 return main 与 exit() 函数

本文探讨了C语言中两种程序终止方式:main函数的return语句和exit()函数。main函数是程序的入口点,通过return语句可以正常终止程序并返回状态码,通常0表示成功,非0表示错误。exit()函数则提供了一种立即终止程序的方式,无论调用位置如何,适用于处理致命错误或强制退出场景。文章通过代码示例展示了这两种方法的使用场景和区别,并建议在正常流程中使用return,在紧急情况下使用exit()。

Web安全工具库 2314

exit()函数

exit()函数 头文件:stdlib.h 功能:为退出程序的函数 用法: exit(1); 为异常退出 //只要括号内数字不为0都表示异常退出 exit(0); 为正常退出 注意:括号内的参数都将返回给操作系统; return()是返回到上一级主调函数,不一定会退出程序;...

qq_40243295的博客 3万+

ComfyUI面部修复FaceDetailer保姆级教程:从模型选择到参数调优全解析

本文提供ComfyUI面部修复FaceDetailer的保姆级教程,深度解析从模型选择到参数调优的全过程。针对常见的五官模糊、肤色不均等问题,详细对比了BBox与Segm检测器的优劣,并给出SD1.5与SDXL模型的核心参数联动策略与实战方案,帮助用户精准掌控AI绘画中的面部修复效果。

weixin_29073241的博客 472

C语言中的exit()函数

函数名: exit() 所在头文件:stdlib.h 功 能: 关闭所有文件,终止正在执行的进程。 exit(1)表示异常退出.这个1是返回给操作系统的。 exit(x)(x不为0)都表示异常退出 exit(0)表示正常退出 exit()的参数会被传递给一些操作系统,包括UNIX,Linux,和MS DOS,以供其他程序使用。stdlib.h: void exit(int status); 参 数...

春卷同学的博客 10万+

Docker版OnlyOffice中文字体配置全攻略:从字号调整到字体添加

本文详细介绍了在Docker版OnlyOffice中配置中文字体和调整字号的完整方案。通过容器内操作和配置文件修改,实现中文标准字号映射及思源、阿里巴巴等优质字体的集成,提升文档排版的规范性和专业性。特别针对企业级部署提供了性能优化建议和常见问题解决方案。

weixin_28309571的博客 137

RuntimeError: The current installed version of g++ (4.8.5) is less than the mininum version CUDA解决方案

本文主要介绍了RuntimeError: The current installed version of g++ (4.8.5) is less than the mininum version CUDA解决方案,希望能对学习python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 8万+

exit在c语言里的作用,C语言中exit函数的使用

exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用。在多个进程时.如果有时要检测上进程是否正常退出的.就要用到上个进程的返回值..exit(1)表示进程正常退出. 返回 1;exit(0)表示进程非正常退出. 返回 0.进程环境与进程控制(1): 进...

weixin_29011239的博客 1万+

玩转 InternVL3.5 轻量级实战:从部署到优化的全记录

玩转 InternVL3.5 轻量级实战:从部署到优化的全记录

jacke121的专栏 626

Linux -- exit()函数、_exit()函数、return的说明与使用

exit()函数和_exit()函数都是用来 终止进程 的。 return是C语言关键字,主要用于子函数的返回,标识这个子函数的结束。

青椒*^_^*凤爪爪的博客 1万+

SpringBoot实现快速导入EXCEL

MaterialMonitorController.java @Log(title = "物料监测", businessType = BusinessType.IMPORT) @RequiresPermissions("system:materialMonitor:import") @PostMapping("/importData") @ResponseBody ...

LEN程序员的一生 4817

goahead(嵌入式Web服务器)之文件传输篇

goahead文件上传原理: 使用html form即表单提交文件上传请求,web服务器核心处理接收客户端Post过来的文件数据(注意post的是二进制数据),最后,web服务器把接收到文件数据以二进制格式写到服务器本端存储系统。 goahead文件上传步骤: 1、创建upload.html文件,内容如下: <html> <head> <meta charset="utf-8"/> <title>Upload</title> </head&g

weixin_40732273的博客 3495

C语言的exit()函数用法

表示程序的退出状态码。这个状态码可以用来向调用程序传递一些信息,例如程序是否正常结束、出现了什么错误等。函数还会执行一些清理操作,例如关闭打开的文件和释放动态分配的内存。中提供的函数,用于终止程序的执行并返回到操作系统。函数,程序将立即终止,之后的代码将不再执行。在上述示例中,当除数为零时,程序输出错误信息并调用。终止程序的执行,返回状态码 1 表示异常退出。以下是一个简单的示例,展示了。函数是 C 语言标准库。需要注意的是,一旦调用了。函数接受一个整数参数。

MonsterUFO的博客 1万+

YOLOv11改进策略【损失函数篇】| 引入Soft-NMS,提升密集遮挡场景检测精度,包括GIoU-NMS、DIoU-NMS、CIoU-NMS、SIoU-NMS、 EIou-NMS

传统的非极大值抑制(NMS)算法在目标检测中存在一个问题,即当一个物体的检测框与具有最高得分的检测框M有重叠(在预定义的重叠阈值内)时,会将该检测框的得分设置为零,从而导致该物体可能被遗漏,降低了平均精度。为了解决这个问题,作者提出了Soft-NMS算法。本文将YOLOv11默认的NMS修改成GIoU-NMSDIoU-NMSCIoU-NMSSIoU-NMSEIou-NMS。

Limiiiing的博客 4319

c语言中exit函数_C ++中的exit()函数

c语言中exit函数 介绍 (Introduction) Today we’ll learn about exit() in C++. We know we can break out of loops using the built-in break function in C++. Similarly, we can also break out of a whole C++ program ...

从零开始的教程世界 6587

Unreal从入门到精通之 UE4 vs UE5 VR性能优化实战

这篇文章分享了UE5 VR项目的性能优化经验。作者通过对比UE4和UE5的VR模板性能,发现UE5默认帧率只有45FPS,远低于UE4的100FPS。主要性能瓶颈来自Lumen全局光照、虚拟阴影贴图等新特性。文章详细列出了12项关键优化设置,包括禁用Lumen、关闭虚拟阴影、使用前向渲染等,并分析了各项调整对性能的影响程度。特别指出删除默认的VolumetricCloud可立即提升5帧。最后建议根据场景需求平衡画质与性能,对于高帧率要求的VR项目,可能需要谨慎使用UE5或关闭其部分高级渲染功能。

TxNet 1385

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C语言中Exit函数的使用

<br /><br />exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束<br />  return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用。在多个进程时.如果有时要检测上进程是否正常退出的.就要用到上个进程的返回值..<br />  exit(1)表示进程正常退出. 返回 1;<br />  exit(0)表示进程非正常退出. 返回 0.<br />  进程环境与进程控制(1): 进程的开始与终止<br /

zhou1232006的专栏 4万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C语言中break和exit()的区别

C中break和exit()之间有什么区别? 1. break 和 exit() 之间的主要区别是: break是一个关键字,它会立即退出条件判断或者循环语句,而exit()标准库函数会在调用时终止程序执行。 2. exit()函数的语法 void exit(int status); exit(1)表示异常退出 (其实一切非0都是异常退出) exit(0)表示正常退出 3. 下表显示了bre...

Lee's site 6523

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

exit()函数、_exit()函数 和 _Exit()函数

main 函数中使用 return 后返回,return 执行后把控制权交给调用函数,结束该进程。调用_exit()函数会清除其使用的内存空间,并销毁其在内核中的各种数据结构,关闭进程的所有文件描述符,并结束进程、将控制权交给操作系统。调用函数需要传入 status 状态标志,0 表示正常结束、若为其它值则表示程序执行过程中检测到有错误发生。_exit()和_Exit()两者等价,用法作用是一样的,这 2 个函数都是系统调用。...

Bit_Dong的博客 4849

进程终止:exit()与_exit()深度解析

本文系统介绍了Linux进程终止机制,重点对比了exit()和_exit()的区别:exit()是标准库函数,会执行缓冲区刷新、调用atexit注册函数等清理工作;_exit()是系统调用,直接终止进程不做清理。文章详细讲解了进程终止的多种方式、退出状态码的作用、atexit()函数的使用,并通过示例代码演示了父进程获取子进程退出状态的方法。最后通过知识树状图梳理了进程终止的核心知识点,并提供了包括缓冲区影响测试、vfork实验等5项课后练习建议。

弘羽 1013

C语言入门系列:特殊的main函数和exit函数

执行之前,执行一个指定的函数,通常用来执行程序结束前的资源回收工作,比如释放内存、释放数据库连接等等,或者程序异常退出前打印异常信息。函数的声明和普通函数并无区别,也包含函数头和函数体,函数头包含返回值类型、函数名称、参数列表,函数体中包含。可以起到return的作用,向函数外部返回一个值,返回值是传递给。其他函数使用exit(),就是终止整个程序的运行,没有其他作用。exit()函数的作用是终止整个程序,原型定义在头文件。里面,引入头文件后,我们可以直接在其他函数中使用。函数,它是程序的入口点。

epitomizelu的专栏 1140

C语言 exit 函数 - C语言零基础入门教程

目录 一.exit 函数简介 二.exit 函数使用 三.exit 函数和 return 区别 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.exit 函数简介 #include <stdlib.h> /*描述:终止正在执行的进程*/ /* 函数参数: status 等于 1 ,表示异常退出.这个1是返回给操作系统的; status 等于 0 ,表示正常退出;

猿说编程 1733

linux下c语言按q退出_C语言中的程序终止函数

在C语言的标准库中提供了一些与正常或者不正常的程序终止有关的函数,下面分别对其进行简单介绍。参考文献:1 abort()abort()函数用于不正常地终止一个正在执行的程序。函数原型如下:void abort(void)这个函数将引发SIGABRT信号,你可以在程序中为这个信号设置一个信号处理函数,在程序终止(或干脆不终止)之前采取任何你想采取的动作,甚至可以不终止程序。abort()函数类似于e...

weixin_30838971的博客 1524

exit()与程序异常终止

本文探讨了程序退出的两种方式:正常exit()调用与异常终止。通过代码示例和Mermaid图表,分析了exit()的工作原理及其资源清理机制,对比了异常终止的风险。文章强调优雅退出的重要性,提出异常处理、状态码返回、资源清理等最佳实践,并深入解析exit()底层机制。掌握这些技巧可提升软件稳定性和用户体验,让程序以更可控的方式结束运行。

always_TT的博客 932

C语言 exit() _exit()

基础 在main中终断自己,并返回 1.0:sucess;1:failure;2:error _exit(int status); exit(int status); _Exit(int status); exit() and _exit() and _Exit() 三种终断进程的方法 方法|描述 –|-- _exit()|请求OS立刻终断进程,强行,不回收资源 exit()|C标准库函数...

Claroja 937

linux C语言 exit()函数

文章目录man 2 exit发现搞错了,应该看 man 3 exit man 2 exit _EXIT(2) Linux Programmer's Manual _EXIT(2) NAME _exit, _Exit - terminate the calling process //终止调用进程 SYNOPSIS #

Dontla的博客 1581

C/C++ 中 exit() 函数

【知乎上的问题】C/C++ 中 exit() 函数的参数到底有什么意义? C 语言的设计之初就是为 Unix 系统设计的,而这个系统是『很多程序互相配合』搭配成一个系统。 每个运行着的程序都是进程,而进程就会有父进程,父进程通常是直接启动你的进程,父进程死亡的进程会被 init 收养,其父进程变为 init,而 init 的父进程是进程 0,进程 0 则是系统启动时启动的第一个进程。 e

jjjcainiao的专栏 5万+
上一篇: 【C语言入门】函数返回局部变量指针的底层原理与实践陷阱
下一篇: 【C语言入门】函数参数类型检查与函数原型
Mr_-G
Mr_-G 优质创作者: 嵌入式与硬件开发技术领域 优质创作者: 嵌入式与硬件开发技术领域
博客等级 码龄6年 7923粉丝 416原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值