- 締切済み
64bit → 32bit型へのキャスト
long 64data = 1; int 32data = (int)64data; 64bitの変数で上位32bitは使わない場合、int型の変数にキャストして代入することは可能ですか?
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
回答No.6
直接の回答ではありません。 「実験してみる」というのは、時にあまり良くない方法でもあります。 実験してうまくいかなければ良いのですが、うまくいったときに、 ・うまくいったと勘違いした。 ・そのケース(データ、処理系)だと、たまたまうまくいった。 というケースに遭遇し、あとあと不幸な経験をすることもままありますから。
- OKWave_taka
- ベストアンサー率12% (3/24)
回答No.5
先頭が数字で始まる変数名を付けるなど言語道断
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.4
そもそも「long は 64ビット」とか「int は 32ビット」とかいうことは (規格では) 決まっていないんだけど,それは大丈夫なの? でそれが大丈夫という前提だけど, もともと int で表現できる値なら問題ありません. 逆に「もともとが int では表せない」ときには, その結果は処理系依存です.
- kngj1740
- ベストアンサー率18% (197/1052)
回答No.3
代入ではキャストしなくとも、警告は出るかも知れないがエラーにはならないと思いましたが。
- black2005
- ベストアンサー率32% (1968/6046)
回答No.2
簡単だから実際にやってみればいい でないと理解出来ないでしょ その変数名ではコンパイル通らないけどね・・・
- asuncion
- ベストアンサー率33% (2127/6289)
回答No.1
私だったら、実験するコードを書いて試してみます。 うまくいけばそれでよいし、ダメだったらどうすればいいかを考えます。