导图 - 第6章 函数
6.1 函数基础
6.1.1 局部对象
问charGPT:为什么每次函数调用 static size_t ctr = 0; ctr不会被这条语句重新赋值为0?
当函数中的变量被标记为
static
时,它的生命周期会持续到程序的结束,而不是像普通局部变量那样在每次函数调用时重新初始化。在这段代码中,static size_t ctr = 0
;语句只会在第一次调用count_calls
函数时执行,并将ctr
初始化为0。之后的每次函数调用,ctr
的值将会被保留,不会重新赋值为0
书上对 局部静态对象 和 这段代码 的解释
其实还是没太懂
6.1.2 函数声明
有时候经常会把函数的定义和声明分开
- 可以声明在main函数之前,定义在之后(main始终在比较上面的位置,代码比较整洁)
- 或者可以把声明放在头文件中,把定义放在另一个cpp文件中
声明时形参名可以省略
6.1.3 分离式编译
可按照逻辑关系来将不同函数划分到不同的源文件中去,每个文件可以独立编译
现在都用IDE(如vs2019等),虽然看不到这样一个过程,但也要大概知道