如何禁用对程序中的函数重新排序的编译器/链接器优化?比方说,我有三个功能,比如
void A (){};
void B (){};
void C (){};
构建后,这些函数可以重新排序,以便 B 在内存中排在第一位,C - 第二, A - 第三。
在 GCC 中,您有一个选项“no-toplevel-reorder”可以解决问题。
-fno-toplevel-重新排序
不要重新排序顶级函数、变量和 asm 语句。以它们在输入文件中出现的相同顺序输出它们。使用此选项时,不会删除未引用的静态变量。此选项旨在支持依赖特定排序的现有代码。对于新代码,最好使用属性。
有 MS C++ 的类似物吗?