求助:c++11以及其他c++标准中对于编译器化简算术表达式的要求
  • 板块学术版
  • 楼主WangLianda
  • 当前回复8
  • 已保存回复8
  • 发布时间2022/2/26 18:24
  • 上次更新2023/10/28 07:41:10
查看原帖
求助:c++11以及其他c++标准中对于编译器化简算术表达式的要求
643820
WangLianda楼主2022/2/26 18:24

首先,很早之前c语言就允许编译器化简常量表达式了。

int a=10+2;
//等价于
int a=12;
//此简化由编译器进行

那么 可不可以化简非常量表达式呢?

首先,由于自定义数据类型允许重载算术运算符号,所以显然不可以。

但是c++不允许重载像是int、char这种的基本数据类型之间的运算,所以可不可以完成下面这种简化呢?

int x=(a+2b)*(a+3b);
//可不可以变化成:
int x=a*a+5*a*b+6*b*b;

求助

2022/2/26 18:24
加载中...