<分区>
是否可以更改编译器在 exe 文件中创建的代码?
我正在尝试像这样更改编译器的输出代码:
我在cpp文件中写的代码是:
a++;
编译器生成以下代码:
INC [a]
我怎样才能把它改成这样:
ADD [a],1
我希望编译器每次编译此语句时都会执行此操作,这就是 asm 语句不起作用的原因。此外,我只想在一个平台上更改它。
我确定编译器会根据模板生成代码,所以我该如何更改它(如果可以)?
<分区>
是否可以更改编译器在 exe 文件中创建的代码?
我正在尝试像这样更改编译器的输出代码:
我在cpp文件中写的代码是:
a++;
编译器生成以下代码:
INC [a]
我怎样才能把它改成这样:
ADD [a],1
我希望编译器每次编译此语句时都会执行此操作,这就是 asm 语句不起作用的原因。此外,我只想在一个平台上更改它。
我确定编译器会根据模板生成代码,所以我该如何更改它(如果可以)?
最佳答案
只需使用内联汇编。例如在 GCC 中:
#ifdef PLATFORM_X86
__asm__ ( "addl $1, %0" : "=r"(a) : : "memory" );
#else
a++;
#endif
关于c++ - 如何设置c++编译器生成的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23825684/