MS C ++禁用功能重新排序

时间:2012-11-25 14:24:37

标签: c

如何禁用重新排序程序中函数的编译器/链接器优化? 比方说,我有三个功能,比如

    void A (){};
    void B (){};
    void C (){};

构建之后,这些函数可以重新排序,因此B首先在内存中,C - 秒和A - 第三。

在GCC中,你有一个选项“no-tovelvel-reorder”可以解决问题。

  

-fno-顶层-重排序

     

不要重新排序顶级函数,变量和asm语句。   以与它们在输入文件中出现的顺序相同的顺序输出它们。什么时候   使用此选项时,不会删除未引用的静态变量。   此选项旨在支持依赖于a的现有代码   特别订购。对于新代码,最好使用属性。

MS C ++是否有模拟?

1 个答案:

答案 0 :(得分:1)

可以使用#pragma code_seg(“segname $ tag”)完成;