C++函数

1.函数名以大写字母开头,每个单词首字母大写,没有下划线。
2.形式参数命名采用第一个单词首字母小写,后面单词首字母大写。
3.[返回类型] 函数名(数据类型 形参变量);
左圆括号总是和函数名在同一行,圆括号与参数间没有间隔。
参数个数要控制在5个以内,输入参量在前,输出参量在后,用于输入参量的指针,类型前要加const,以防止该指针指向的内存单元在函数体内无意中被修改。若函数没有参数,使用void。
4.函数体的左花括号总是在最后一个参数同一行的末尾处,右花括号单独位于最后一行。
5.扇出是指一个函数直接调用(控制)其他函数的数目;
扇入是指有多少上级函数调用它。
6.C++中函数的参数传递包括:值传递、指针传递、引用传递。
7.当一个函数中有多个默认参数,则默认参数必须从右到左逐个定义,中间不能间隔非默认参数。
8.全局变量要少用,若不得已使用全局变量,要加前缀g_,此外还要有详细的注释,包括功能、取值范围、被使用的函数或过程以及存储时的注意事项等。
9.对于全局变量,若不进行初始化系统会自动初始化为0;
对于局部变量,必须进行初始化,系统不会自动初始化,且应在同一行内初始化。
切记全局变量和局部变量最好不要同名。
10.C++中变量的存储类别有:auto, static, register, extern。
其中auto, static, register 只能用于变量的定义语句;
extern只能用于声明已定义的外部变量。
(1)auto
~函数内、复合语句内定义的局部变量或函数参数,即为自动变量,auto一般省略。
~编译程序不会给自动变量赋值,所以要初始化。
~自动变量使用的存储空间会由程序自动创建和释放于栈。
(2)extern
~extern与C连用,表示按照C语言编译。
~extern不与C连用,表示声明已定义的外部变量。
(3)static
~在面向过程设计中,用于普通变量和函数;在面向对象设计中,用于类。
~static修饰变量就是静态变量,存储在静态数据区。静态变量在main之前就已经初始化为0.
~内部静态变量:
static 局部变量
这个局部变量会采用静态存储分配,保存在全局数据区,函数执行完后其值依然存在。
~外部静态变量
static 外部变量
其作用域为定义它的文件,其他文件不能直接使用。
~使用方法:
1.若全局变量只在单个文件中使用,可改为外部静态变量。
2.若全局变量只在单个函数中使用,可改为内部静态变量。
3.若函数的返回值为指针类型,必须是static的局部变量的地址作为返回值,若用auto则发生错误。
4.static修饰的全局变量的定义和声明是同时进行的,因此不能用extern和static同时修饰一个变量。
(4)register
~修饰的局部变量是寄存器变量。
~只有int,char,short,unsigned,指针类型可使用register。
~数量有限;不能对寄存器变量取地址。

存储方式autoregisterstatic局部static全局extern
存储方式动态静态
存储区动态区寄存区静态存储区
生存期函数调用开始至结束程序整个运行期间
作用域定义变量的函数或复合语句内本实现文本其他文件
赋初值每次函数调用时时编译时赋初值且只有一次
未赋初值不确定自动赋初值0或空

11.内部函数指只能在本文件中被调用的函数,前缀加static来定义。
外部函数指可以被其他源程序调用的函数,前缀加extern来定义(也可以省略不加),当调用其他实现文件中的函数时,要用extern来说明。也可以用#include来声明。

12.函数重载:
指的是在同一个作用域(同一个类/实现文件)中,同一个函数名对应多个函数。这些函数要求参数类型、参数个数或参数顺序不同。例如

int min(int a, int b);
float min(float a, float b);
int min(int a, int b, int c);

13.内联函数
内联函数的语法格式:

inline 函数类型 函数名 (参数)
{
	函数体;
}

内联函数是用来取代宏定义(宏定义是由预处理器对宏进行替换,内联函数则是通过编译器,因此是真正意义上的函数)。内联函数没有一般函数的参数压栈和退栈操作,减少了调用的开销,因此有着更高的执行效率。
~内联函数要使用inline关键字来定义,但是在类体内定义的成员函数都是内联函数。
~递归函数不能定义为内联函数。
~内联函数只能先定义后使用,否则会被认为是普通函数。
~内联函数一般只有几行,且不能包含循环语句和开关语句(switch)。若函数体内的代码较长,会导致内存消耗代价较高。
~内联函数应放在头文件中定义,复杂的内联函数应放在后缀名为-inl.h的头文件中,短小简单的内联函数可放在.h文件中。把内联函数放在头文件中,可以确保在调用函数时所使用的定义是相同的。
~一般函数在使用时,要将程序执行权转到被调用函数中,完成后再返回调用它的函数中。但是内联函数类似宏替换,是直接将函数体替换调用处的函数名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值