C语言函数与调用机制深度解析

📚 共计 30 章节
01
函数初探
为什么需要函数?定义与声明,本质是可重用的代码块。
基础入门
02
函数参数传递
形参与实参,值传递与地址传递底层区别,参数压栈顺序。
核心
03
函数返回值
return底层实现,类型与生命周期,局部变量陷阱。
陷阱生命周期
04
函数调用栈
栈帧概念,EBP/ESP角色,调用与返回完整过程。
汇编栈帧
05
递归函数
递归原理与栈帧变化,深度限制与栈溢出,尾递归优化。
递归优化
06
函数指针
声明与使用,回调函数实现机制,函数指针数组。
指针回调
07
内联函数
inline关键字,内联与宏区别,编译器取舍。
优化
08
可变参数函数
stdarg.h宏,va_list/va_start/va_arg/va_end,printf思路。
可变参数printf
09
静态函数与全局函数
static作用,内部链接与外部链接,模块化设计。
static链接
10
函数的作用域与生命周期
作用域规则,局部静态变量,嵌套与作用域链。
作用域生命周期
11
main函数详解
argc与argv传递机制,返回值,程序启动与退出流程。
入口启动
12
函数重载与名字修饰
C++重载原理,Name Mangling规则,extern "C"作用。
C++重载
13
回调函数与事件驱动
回调设计模式,函数指针作为参数,事件循环应用。
回调事件
14
函数与宏的对比
宏文本替换,副作用,内联函数与带参宏优劣。
内联
15
函数调用约定
__cdecl/__stdcall/__fastcall区别,参数传递与栈清理。
约定
16
函数与模块化编程
头文件与源文件分离,多文件编译链接,防止重复包含。
模块编译
17
函数与错误处理
错误码返回,errno全局变量,setjmp/longjmp非局部跳转。
错误跳转
18
函数与性能优化
函数调用开销,尾调用优化,编译器优化选项影响。
性能优化
19
函数与内联汇编
C函数嵌入汇编,AT&T与Intel语法,系统调用实现。
汇编系统调用
20
函数与多线程
线程函数签名,pthread_create,线程安全与可重入。
线程并发
21
函数与动态链接
共享库函数,dlsym动态加载,PLT/GOT工作原理。
动态库链接
22
函数与虚函数表
C++虚函数机制,vptr与vtable,动态绑定开销。
C++虚函数
23
函数与Lambda表达式
C++11 Lambda语法,捕获列表实现,闭包底层原理。
Lambda闭包
24
函数与函数对象
仿函数设计,operator()重载,与函数指针对比。
仿函数对象
25
函数与协程
C20协程概念,co_await/co_yield/co_return,协程帧与栈管理。
协程C++20
26
函数与信号处理
signal函数注册,信号处理函数限制,异步信号安全。
信号异步
27
函数与中断服务程序
嵌入式ISR编写,中断上下文与普通函数区别,volatile。
嵌入式ISR
28
函数与调试技巧
函数调用跟踪,backtrace使用,GDB查看调用栈。
调试GDB
29
函数与测试
单元测试桩(Stub)与模拟(Mock),TDD中的函数设计。
测试TDD
30
函数设计最佳实践
单一职责原则,命名规范,参数个数控制,复用与重构。
最佳实践重构