使用C预处理器有效地重命名变量

aar*_*ing 4 c variables c-preprocessor

我正在编写一些非常紧密的循环,最外面的循环将运行一个多月.我的理解是函数具有的局部变量越少,编译器就越能优化它.在其中一个循环中,我需要一些标志,一次只使用其中一个标志.如果你是知道自己住在哪里的众所周知的杀人疯子,你宁愿将旗帜命名flag并在整个过程中使用,或者你更喜欢像

unsigned int flag;

while (condition) {

#define found_flag flag
  found_flag = 0;
  for (i = 0; i<n; i++) {
    if (found_condition) {
      found_flag = 1;
      break;
    }      
  }
  if (!found_flag) {
     /* not found action */
  }

/* other code leading up to the next loop with flag */
#define next_flag flag
  next_flag = 0;
/* ... /*  
}
Run Code Online (Sandbox Code Playgroud)

这提供了允许每个标志的描述性名称而不添加新变量但看起来有点不正统的好处.我是一名新的C程序员,所以我不知道该怎么做.

dre*_*lax 14

不要打扰这样做,只需为每个标志使用一个新变量.编译器将能够确定每个首先和最后使用的位置,并相应地优化实际使用的空间量.如果标志变量的使用都不重叠,那么编译器最终可能会为所有标志变量使用相同的空间.

首先是可读性代码.