首先,很早之前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;
求助