默认实参

来源:互联网 发布:ld矢量制图软件 编辑:程序博客网 时间:2024/05/01 09:29

     默认实参是通过给形参表提供明确的初始值来指定的。程序员可为一个或多个形参定义默认值。

     【注意事项】

     1)如果有一个形参具有默认实参,那么,它后面所有的形参都必须有默认实参。

     2)函数调用的实参按位置解析,默认实参只能用来替换函数调用缺少的尾部实参。

     3)设计带有默认实参的函数,其中部分工作就是排列形参,使最少使用默认实参的形参排在最前,最可能使用默认实参的形参排在最后。

     4)既可以在函数声明也可以在函数定义中指定默认实参,但是,在一个文件中,只能为一个形参指定默认实参一次。

     5)通常,应在函数声明中指定默认实参,并将声明放在合适的头文件中。

     6)如果在函数定义的形参表中提供默认实参,那么只有在包含该函数定义的源文件中调用该函数时,默认实参才是有效的。


2、静态局部对象

   static局部对象确保不迟于在程序执行流程第一次经过该对象的定义语句时进行初始化。

   这种对象一旦被创建,在程序结束前都不会被撤销。当定义静态局部对象的函数结束时,静态局部对象不会撤销。在该函数被多次调用的过程中,静态局部对象会持续存在并保持它的值。


3、内联函数

     小操作定义一个函数的好处:

     1)阅读和理解函数的调用,比读一条用等价的条件表达式取代函数调用表达式并理解他的含义要容易得多。

     2)如果需要做任何修改,修改函数要比找出并修改每一处等价表达式容易得多。

     3)使用函数可以确保统一的行为,每个测试都保证以相同的方式实现。

     4)函数可以重用,不必为其他应用重写代码。

 

    缺点:调用函数比求解等价表达式要慢得多。

 

    调用函数需要做的工作:

     1)调用前先保存寄存器,并在返回时恢复;复制实参;程序还必须转向一个新位置执行。

 

     内联函数避免函数调用的开销

     1)将函数指定为内联函数,就是将它在程序中每个调用点上“内联地”展开;在函数返回类型前加上关键字inline就可以将函数指定为内联函数。

     2)内联机制适用于优化小的,只有几行的而且经常被调用的函数。

     3)内联函数的定义对编译器而言必须是可见的,以便编译器能够在调用点内联展开该函数的代码。

     4)内联函数应该在头文件中定义,

     5)内联函数可能要在程序中定义不止一次,只要内联函数的定义在某个源文件中只出现一次,而且在所有的源文件中,其定义必须是完全相同的。因此,将其放在头文件中,可以确保其定义是相同的。

 

原创粉丝点击