質問: (long)(data1 * data2 ); 上記、(1)、(2)のキャストは同じ意味と判断して良いのでしょうか? 詳しい方ご回答よろしくお願いします。
回答: 16ビットcpu用のコンパイラでは結果が異なるでしょうね。 例えば char型⇒8ビット(符号1ビット、整数部7ビット) int型、short型⇒16ビット(符号1ビット、整数部15ビット) long型⇒32ビット(符号1ビット、整数部31ビット) と言う実装をしたコンパイラでは、(1)の式では問題ありませんが、(2)の式ではオーバーフローが起きる場合があります。 従って「(1)の式は環境に依存しないが、(2)の式は環境に依存する」と言う違いがあり、意味も違います。