为什么#pragma不能用于ideone?

时间:2012-07-20 20:11:58

标签: c

考虑以下计划:

#pragma startup foo1
#pragma exit foo2

void foo1()
{
    printf("Called before main\n");
}

void foo2()
{
    printf("Called after main\n");
}

int main()
{
    printf("main called\n");
    return 0;
}

我的输出为:http://ideone.com/ooMFI

main called

为什么pragma无效?
为什么选择foo1()& foo2()没有被调用?

1 个答案:

答案 0 :(得分:6)

因为GCC无法识别这些编译指示。一般情况下,如果您正在尝试编写可移植代码,请不要使用pragma,因为它们在每个编译器甚至同一编译器系列中的每个平台上都不同。