psi*_*lia 4 c algorithm coding-style
我有一个库的源代码,它有很多奇怪的IF,ELSE,FOR等宏用于所有常见的C关键字,而不是只使用通常的if,else,for,while关键字.这些宏的定义如下:
#define IF( a) if( increment_if(), a)
Run Code Online (Sandbox Code Playgroud)
其中increment_if()函数定义如下:
static __inline void increment_if( void) {
// If the "IF" operator comes just after an "ELSE", its counter
// must not be incremented.
... //implementation
}
Run Code Online (Sandbox Code Playgroud)
我真的不明白,这类宏的目的是什么?这个库是用于实时应用程序的,我想使用这样的宏必须减慢应用程序的速度.
And*_*gor 10
这些宏将有两个版本,一个只是普通的if语句,另一个是计算该语句的执行次数.这样做的原因是进行性能分析统计.如果计算每个代码块的执行次数,则可以计算每个代码块的执行时间.
在实时应用程序中,每个操作的时间是可预测的更为重要,因此您可以计算应用程序是否满足其最后期限.事实上,仅仅是快速是不够的,只要满足最后期限,这就是所需要的.