c++ - 如何设置c++编译器生成的代码

标签 c++ c

<分区>

是否可以更改编译器在 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/

相关文章:

c++ - 嵌套模板类型

c - 动态向 char * 添加单词

c - 带有 getifaddrs 的 MAC 地址

c - 初始化结构中的指针数组时是否需要花括号?

c++ - Gdiplus::Bitmap::FromHBITMAP 内存泄漏

c++ - 头文件中定义的非内联虚函数

c++ - Curl 简单的 https 请求不返回任何 C++

c++ - 具有不同对齐要求的不同类型的两个对象可以具有相同的对象表示吗?

C - 如何从指向该值的指针访问值?

c - 如何为 3 个不同的 c 文件创建一个 makefile