我是预处理器的新手,我很少使用它,所以这个问题可能看起来很愚蠢。在我的 C 程序中,我发现在编译时已知固定开始和结束的 for 循环会导致一些性能问题。我通过手动推出它暂时解决了这个问题,但这似乎有点脏。有没有办法告诉预处理器把这个:
for(int i = 0; i < 8; i++)
{
doSomeThingWithI(i, [...]);
doSomeMoreStuffWithIt(i, [...]);
foo();
[...]
}
进入这个:
doSomeThingWithI(0, [...]);
doSomeMoreStuffWithIt(0, [...]);
foo();
[...]
doSomeThingWithI(1, [...]);
doSomeMoreStuffWithIt(1, [...]);
foo();
[...]
[...]
重要的是我必须在循环中使用“i”。
最佳答案
您总是可以像这样对其进行硬编码(将 printf
替换为您的函数):
#include <stdio.h>
#define LOOP_8(X) X X X X X X X X
int main() {
int i = 0;
LOOP_8(printf("Loop number %d\n", i++);)
}
但是在实际代码中使用它可能太丑陋了。
关于C 预处理器 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42317936/