k&RCから
- まず、一方のオペランドがlong doubleの場合、もう一方はlongdoubleに変換されます。
- それ以外の場合、一方のオペランドがdoubleの場合、もう一方はdoubleに変換されます。
- それ以外の場合、一方のオペランドがfloatの場合、もう一方はfloatに変換されます。
- それ以外の場合、積分昇格は両方のオペランドで実行されます。..。
これは以下の表現を意味します
char a,b,c;
c=a+b;
実際には次のように計算されます
c = char((int)a+(int)b);
このルールの背後にある理論的根拠は何ですか?
これらの変換は、a、b、およびcが短い場合に発生しますか?