IF,ELSE,FOR宏的目的是什么?

时间:2010-05-07 10:19:01

标签: c algorithm coding-style

我有一个库的源代码,它有很多奇怪的IF,ELSE,FOR等所有常用C关键字的宏,而不是只使用通常的if,else,for,while关键字。这些宏的定义如下:

 #define IF( a) if( increment_if(), a)

其中increment_if()函数定义如下:

static __inline void increment_if( void) {
    // If the "IF" operator comes just after an "ELSE", its counter
    // must not be incremented.
    ... //implementation
}

我真的不明白,这类宏的目的是什么?这个库是用于实时应用程序的,我想使用这样的宏必须减慢应用程序的速度。

1 个答案:

答案 0 :(得分:10)

这些宏将有两个版本,一个只是普通的if语句,另一个是计算该语句的执行次数。这样做的原因是进行性能分析统计。如果计算每个代码块的执行次数,则可以计算每个代码块的执行次数。

在实时应用程序中,每个操作的时间是可预测的更为重要,因此您可以计算应用程序是否满足其最后期限。事实上,只要满足最后期限,这是不够的,只要满足最后期限,这就是所需要的。