内置运算符在哪里定义?

时间:2017-05-13 20:50:28

标签: c++

+-等运营商在哪里定义?

E.G。我在哪里可以看到代码+表示将两个项目一起添加?

正在阅读this,但我不能在标准库部分看到基本的1 + 1 = 2案例。一个例子显示在" Additive Operators"部分,但我找不到函数定义的位置。

4 个答案:

答案 0 :(得分:3)

编译器为这些操作生成代码 - 它们不是标准库的一部分。您的编译器几乎肯定会有一个选项,允许您检查生成的汇编语言代码。

答案 1 :(得分:0)

这是语言本身的一部分......编译器翻译字符串“c = a + b;”将存储在a中的值添加到存储在b中的值,并将结果设置为c。

答案 2 :(得分:0)

  

但我找不到函数定义的位置。

可能根本没有函数定义,而是一个简单的汇编指令集:

mov 1,r1
mov 5,r2
add r1,r2

答案 3 :(得分:0)

在C ++中,没有operator+(int,int)。加法运算符是内置的,没有与之对应的功能。特别是,你不能这样做:

using intDyadic = int(*)(int, int);
intDyadic add = operator+(int,int);

相比之下,您可以创建一个指向库中定义的操作符覆盖的函数指针,包括标准库。