1 c++语言并没有明确规定调用这个函数时实参的求值顺序,而是让编译器根据对代码进行优化的需要自行决定实参的求职顺序。这样就带来了二义性。
function(a++,a*); //存在二义性 a++;
function(a,a*); //不存在二义性
2 内联函数。
3 声明函数原型或者定义函数时均可以指定默认值,不能对两者都定义,默认值只能从后往前定义;不同作用域下声明函数原型是,可以对形参设置不同的默认值。
4 函数重载。函数形参的类型或个数不同。注意返回值相同不构成函数重载。
1 c++语言并没有明确规定调用这个函数时实参的求值顺序,而是让编译器根据对代码进行优化的需要自行决定实参的求职顺序。这样就带来了二义性。
function(a++,a*); //存在二义性 a++;
function(a,a*); //不存在二义性
2 内联函数。
3 声明函数原型或者定义函数时均可以指定默认值,不能对两者都定义,默认值只能从后往前定义;不同作用域下声明函数原型是,可以对形参设置不同的默认值。
4 函数重载。函数形参的类型或个数不同。注意返回值相同不构成函数重载。