实时 C++ 编程入门与实践
1. 实时 C++ 编程基础
1.1 函数内联与实现位置
在 C++ 中,直接在类声明中实现的函数默认是内联的,因此通常无需使用 inline
关键字。对于那些需要极致性能的简短非虚子程序,可以在类定义中实现,这样编译器有可能进行内联优化。而对于那些不太受时间限制的长计算和多态函数,或者依赖运行时虚机制的函数,通常应放在与类定义对应的源文件中。
1.2 类成员
1.2.1 成员函数 toggle()
以 led
类为例,它有一个成员函数 toggle()
,其代码如下:
void toggle() const
{
// Toggle the LED.
*reinterpret_cast<volatile bval_type*>(port)
^= bval;
}
toggle()
函数负责根据 LED 的当前状态将其从关闭切换到打开,或者从打开切换到关闭。该函数通过直接内存访问进行位操作来实现端口引脚的切换。这里的 reinterpret_cast
模板转换运算符将在后续详细介绍。
函数末尾的 const
限定符表明 toggle()
是一个常量成员函数。常量成员函数通常不打算改变类的任何成员变量的