局部变量,块内的变量(函数为最大的块)全局变量在所有函数之外(函数都可用)内存: 代码区 数据区 栈为局部变量 堆区为动态分配 全局数据区,静态数据区 常量区,主要是字面量,内存为只读的。函数的形参,可以给默认值可以为形参指定默认值(从右向左),调用时可以不用传递参数。fact(int n,int m = 1);但是不能跳跃传递参数,二义性!enum Sex{ MALE,FEMALE}void disp(char* name, Sex gender = MALE);函数声明中指定了默认值,不能在定义时,再指定默认值,但可以追加默认值。fact(int , int =1); 这样声明没问题。内联函数,提高程序运行效率,调用函数时,不是调用,而是搬一份到调用处,不用进行真正函数调用,所以无开辟栈的开销。会增加代码的长度如果函数很复杂,不能成为内联函数。不支持控制结果。规定1,必须先定义,不支持函数原形。因为搬函数代码时,是在编译过程中进行的。比较 调用开销 VS 执行开销,来判断是否使用内联函数,对于很简单的函数值得内联。2.是否能成为内联函数完全有编译程序决定3.不支持控制结构。
主函数文件