例如,在此代码中
int main(int argc, char *argv[])
{
#pragma omp parallel
printf("Hello, world.\n");
return 0;
}
gcc的预处理器是否修改了C代码 用。替换OpenMP指令 其他一些代码?
之后的代码是什么? 预处理之前和之前 组装
谢谢和问候!
答案 0 :(得分:2)
您可以进行网络搜索并查找讨论此主题的论文。我讨厌提供链接,因为它们会不断变化,但在这种情况下,这是回答问题的最简单方法。您可以看看以下两个:
The Thing from another World (or: How do OpenMP Compilers Work? Part 1), by Michael Klemm
How OpenMP is Compiled, by Barbara Chapman
希望这会回答你的问题。
答案 1 :(得分:1)
我不知道第一手资料,但GCC(或任何编译器)在遇到这些编译指示时预处理代码的可能性很小。最有可能的是,GCC将在内部标记该块,然后生成适当的本机代码。没有中间C ++代码。