如何禁用重新排序程序中函数的编译器/链接器优化? 比方说,我有三个功能,比如
void A (){};
void B (){};
void C (){};
构建之后,这些函数可以重新排序,因此B首先在内存中,C - 秒和A - 第三。
在GCC中,你有一个选项“no-tovelvel-reorder”可以解决问题。
-fno-顶层-重排序
不要重新排序顶级函数,变量和asm语句。 以与它们在输入文件中出现的顺序相同的顺序输出它们。什么时候 使用此选项时,不会删除未引用的静态变量。 此选项旨在支持依赖于a的现有代码 特别订购。对于新代码,最好使用属性。
MS C ++是否有模拟?
答案 0 :(得分:1)
可以使用#pragma code_seg(“segname $ tag”)完成;