|
知识路径: > 嵌入式系统软件基础知识 > 嵌入式系统程序设计 > 嵌入式程序设计语言 > 嵌入式C/C++程序设计要求 > C++程序设计基础 > C++程序基础 >
|
相关知识点:4个
|
|
|
|
在C++程序中可以使用C的库函数。例如,C++继承了C语言用于日期和时间操作的结构和函数。在程序中使用日期和时间相关的函数和结构,需要引用头文件。
|
|
|
有四个与时间相关的类型:clock_t、time_t、size_t和tm。类型clock_t、size_t和time_t能够把系统时间和日期表示为某种整数。
|
|
|
结构类型tm把日期和时间以C结构的形式保存,tm结构的定义如下:
|
|
|
|
下面是几个与系统时间有关的函数声明(time.h)。
|
|
|
|
|
定义函数时,在“返回类型函数名(参数表列)”之前加上inline使之成为内联函数,即“inline返回类型函数名(参数表列)”。
|
|
|
对于内联函数,编译器是将其函数体放在调用该内联函数的地方,不存在普通函数调用时栈记录的创建和释放开销。
|
|
|
|
(1)在一个文件中定义的内联函数不能在另一个文件中使用。它们通常放在头文件中共享。
|
|
|
(2)内联函数应该简洁,只有几个语句,如果语句较多,不适合定义为内联函数。
|
|
|
(3)内联函数体中不能有循环语句、if语句或switch语句,否则函数定义时即使有inline关键字,编译器也会把该函数作为非内联函数处理。
|
|
|
|
|
C++中,当有一组函数完成相似功能时,函数名允许重复使用,编译器根据参数表中参数的个数或类型来判断调用哪一个函数,这就是函数的重载。对于重载函数,只要其参数表中参数个数或类型不同,就视为不同的函数。例如,下面的max为重载函数。
|
|
|
|
上面定义了三个名称为max的函数,它们的参数和返回值类型都不同。在程序中若有对max函数的调用,编译器将根据参数形式进行匹配,如果找不到对应参数形式的函数定义,编译器给出错误信息。
|
|
|
|
|
(2)函数的形参变量名不同不能作为函数重载的依据。
|
|
|
(3)C++中不允许函数名相同、形参个数和类型也相同而返回值不同的情形,否则编译时会出现函数重复定义的错误。
|
|
|
(4)调用重载的函数时,如果实参类型与形参类型不匹配,编译器会自动进行类型转换。如果转换后仍然不能匹配到重载的函数,则会产生一个编译错误。
|
|
|