拦截C程序中的算术运算

时间:2018-03-13 10:54:36

标签: c gcc intercept integer-arithmetic

当我们在C程序中调用算术运算符时,有没有一种方法可以调用用户定义的函数,就像在C ++中运算符重载一样。使用GNU GCC编译器? 只是, 我有一个函数add(),在我的C程序中我有算术运算

 c = a + b;

当我编译程序时,它应该在内部为+运算符调用我的add()函数。

有没有办法可以看到gcc编译器在遇到+运算符时调用的代码是什么?

1 个答案:

答案 0 :(得分:1)

没有

C不起作用,你不能超载/覆盖基本的内置运算符。

通过让gcc直接发出using -S或者通过反汇编生成的二进制文件,看到代码当然是可能的。相关的binutils工具是objdump

这些天也可以做很多这样的探索"在线"当然,在godbolt.org使用奇妙的Compiler Explorer工具。