标签:cpu 嵌套 文件中 ret void 应该 个数 自动 作用域
```
类型标识符 函数名(形式参数列表)
{
变量的声明
语句
}
```
调用一个函数钱必须先声明函数的返回值类型和参数类型。
指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值,用return语句返回给主调函数。
```
return(表达式);
```
1.函数返回值类型和函数的类型应该保持一致,不一致则以函数类型为准,自动进行类型转换。
2.返回值为整型,可以省去类型标识符
3.可以有多个return,但每次调用只能有一个return语句被执行,因此只有返回一个函数值
4.不返回函数值的函数,类型标识符为 `void`
5.没有参数和返回值的函数为空函数
1.函数未调用,形参不占用内存,调用时才分配内存,调用结束即释放
2.实参时确定的值,调用函数式传递给形参,形参为指针类型,将地址值传递给形参
3.实参与形参类型,个数应相同
4.单项传递,即实参传给形参
在定义函数是,已经设置好的参数。
在参数列表中有 `...`
1.传值调用:主调函数将实参赋值给被调用函数的形参出,传递参数是结构体对象,可以通过传指针或使用变量的引用老替换传值调用
2.嵌套调用
3.递归调用:直接或间接调用自己的函数
全局变量:在函数体外定义的变量,在程序开始时创建并分配空间,程序结束时释放内存并销毁
局部变量:在函数体内定义的变量,函数调用时创建,并在栈中分配内存,调用结束后销毁并释放
多个函数具有相同的函数标识符,但参数类型和个数不同,函数 调用时,编译器以参数的类型及个数类区分调用哪个函数
`inline`把函数定义为内联函数,编译器会在每个调用该函数的地方展开一个函数的副本
变量存储方式的不同会使变量的生存期不同,静态变量一直存在,动态变量时而存在时而消失
1.auto变量:没有说明存储类型的变量均视为自动变量
1.作用域仅限于定义该变量的个体内
2.属于动态存储方式,变量分配的内存在栈中,函数调用结束是则释放
3.不同个体中允许使用同名的变量而不会混淆
2.static变量:将变量声明为静态变量
1.在函数内定义,程序退出时释放,生存期为整个源程序
2.作用域与自动变量相同
3.编译器会为静态局部变量赋予0值
3.regidter变量:将局部变量的值存放在CPU中的寄存器中,使用时不需要访问内存,直接在寄存器中读写
1.动态存储方式,需要采用静态存储方式的变量不能定义为寄存器变量
2.编译程序会自动决定哪个变量使用寄存器存储
4.extern变量:使用其他源文件中的全局变量时,只需要在本源文件中使用external声明这个变量即可
标签:cpu 嵌套 文件中 ret void 应该 个数 自动 作用域
原文地址:https://www.cnblogs.com/lalavender/p/10487001.html