2010-05-07 52 views
4

我里面有很多奇怪的IF库的源代码,ELSE,FOR,为所有常见的C-的关键字,而不是仅仅使用通常如果,否则,对等,而宏关键字。这些宏定义是这样的:IF,ELSE,FOR宏的用途?

#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 
} 

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

回答

10

这些宏将有两个版本,一个是刚刚平原if语句,和一个计数该声明的执行次数。这样做的原因是进行分析统计。如果您计算每个代码块的执行次数,您可以考虑每个代码块的执行时间。

在实时应用程序,这是更为重要的是,每一个操作的时间是可以预测的,所以你可以,如果应用程序满足其截止日期计算。事实上,仅仅在最后期限得到满足的情况下,仅仅是快速是不够的,这就是所需要的。