アプリ版:「スタンプのみでお礼する」機能のリリースについて

long 64data = 1;
int 32data = (int)64data;

64bitの変数で上位32bitは使わない場合、int型の変数にキャストして代入することは可能ですか?

A 回答 (6件)

直接の回答ではありません。



「実験してみる」というのは、時にあまり良くない方法でもあります。
実験してうまくいかなければ良いのですが、うまくいったときに、

・うまくいったと勘違いした。
・そのケース(データ、処理系)だと、たまたまうまくいった。

というケースに遭遇し、あとあと不幸な経験をすることもままありますから。
    • good
    • 0

先頭が数字で始まる変数名を付けるなど言語道断


    • good
    • 1

そもそも「long は 64ビット」とか「int は 32ビット」とかいうことは (規格では) 決まっていないんだけど,それは大丈夫なの?



でそれが大丈夫という前提だけど, もともと int で表現できる値なら問題ありません. 逆に「もともとが int では表せない」ときには, その結果は処理系依存です.
    • good
    • 0

代入ではキャストしなくとも、警告は出るかも知れないがエラーにはならないと思いましたが。

    • good
    • 0

簡単だから実際にやってみればいい


でないと理解出来ないでしょ
その変数名ではコンパイル通らないけどね・・・
    • good
    • 0

私だったら、実験するコードを書いて試してみます。


うまくいけばそれでよいし、ダメだったらどうすればいいかを考えます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!