Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C程序中的算术运算拦截 < >在C++程序中调用算术运算符时,我们可以调用用户定义函数,就像C++中的运算符重载一样。使用GNU GCC编译器? 简单地说, 我有一个函数add(),在我的C程序中有算术运算 c = a + b;_C_Gcc_Intercept_Integer Arithmetic - Fatal编程技术网

C程序中的算术运算拦截 < >在C++程序中调用算术运算符时,我们可以调用用户定义函数,就像C++中的运算符重载一样。使用GNU GCC编译器? 简单地说, 我有一个函数add(),在我的C程序中有算术运算 c = a + b;

C程序中的算术运算拦截 < >在C++程序中调用算术运算符时,我们可以调用用户定义函数,就像C++中的运算符重载一样。使用GNU GCC编译器? 简单地说, 我有一个函数add(),在我的C程序中有算术运算 c = a + b;,c,gcc,intercept,integer-arithmetic,C,Gcc,Intercept,Integer Arithmetic,编译程序时,它应该在内部为+运算符调用add()函数 有没有一种方法可以让我们看到gcc编译器在遇到+运算符时调用的代码是什么?没有 C不是这样工作的,您不能重载/重写基本的内置运算符 当然,查看代码是可能的,可以让gcc直接发出代码,也可以分解生成的二进制代码。相关的binutils工具是 现在,许多这样的探索也可以在“在线”上使用奇妙的编译器资源管理器工具。当然。您可以使用gcc-S选项从C编译到汇编语言,这样您就可以检查它生成的代码。感谢您的帮助:-)。感谢您的链接:-)。最近,我正在使用

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

有没有一种方法可以让我们看到gcc编译器在遇到+运算符时调用的代码是什么?

没有

C不是这样工作的,您不能重载/重写基本的内置运算符

当然,查看代码是可能的,可以让gcc直接发出代码,也可以分解生成的二进制代码。相关的binutils工具是


现在,许多这样的探索也可以在“在线”上使用奇妙的编译器资源管理器工具。当然。

您可以使用gcc
-S
选项从C编译到汇编语言,这样您就可以检查它生成的代码。感谢您的帮助:-)。感谢您的链接:-)。最近,我正在使用arm buildroot linux uclibceabi gcc编译器,在那里我能够重定向浮点操作+,-,*。既然编译器是类似的交叉编译器,那么在gcc本身中不可能吗?