- (1)可以为函数的全部参数或部分参数指定缺省值(默认实参),调用该函数时如果未指定实参,就取缺省值作为相应的实参
void func(int i=10,int j=20){…} - (2)靠右原则,如果函数的某个参数具有缺省值,那么该参数右侧的所有参数都必须带有缺省
void func(int i=0,int j){…}//error
void func(int i,int j=0){…}//ok - (3)如果函数的声明和定义分开,缺省参数要写在函数的声明位置,而定义部分不要重复指定
在声明函数时候,可以为函数的某些参数指定一个缺省值,这样做的目的也是在一定程度上去简化编程,在系统开放中,有许多函数的参数很多,但并不是每次在调用系统函数时候每个参数都有用到,有时候会给某个参数指定一个值0,这个0实际上是一个无用的参数,只不过是根据语法要求,咱们需要给他指定一个实参值,例如Socket函数:
man 2 socket
SYNOPSIS
#include<sys/types.h> //See NOTES
#include<sys/socket.h>
int socket(int domain,int type,int protocol);
第一个参数domain:表示现在所用的通用的网络通信的协议族;第二个参数type:表示套接字的类型,若使用的是基于tcp的通信协议则传递的是SOCK_STREAM;第三个参数在使用时一般给个0,0只是仅仅是代表给这个函数传递一个缺省值而已,其并不是一个真正有用的参数&