前回 の続き.
C言語のおさらい
繰り返しすぎてそろそろクドいかもしれないが,C言語は,いろいろとフリーダムすぎて扱いづらい.
にも関わらず,UnixというOSの記述言語を超えて広く使われた理由の一つに,ポインタを用いた自由なメモリアクセスがある.
前回 の続き.
繰り返しすぎてそろそろクドいかもしれないが,C言語は,いろいろとフリーダムすぎて扱いづらい.
にも関わらず,UnixというOSの記述言語を超えて広く使われた理由の一つに,ポインタを用いた自由なメモリアクセスがある.
ちょいと寄り道して,前回の補足.
@monamour555 gccのversionは何をお使いですか?4.3以降だと-Wconversionとか使えませんかね。。
— ぬん。 (@amasawa_seiji) March 19, 2014
鋭い.(汗
はい.-Wconversion
,使えます.記憶が正しければ GCC 2.95.x から.
ただ,検出が割と難しいようで,3.4系でパッチが出て,立ち消えになったり.
当時の経緯はこのエントリが詳しいです.
また,GCC 4.3 以降では,挙動が微妙に変わったりしています. 変更内容の詳細は,GCC Wiki を.
GCC は,そんな事情なので,前回の記述
もしかしたら気の利いた処理系では警告を出してくれるかもしれないが.
は,完全に筆が滑っております. お詫びします…が,必ずしも訂正はしません.
今回の後半は,その辺りについて.
前口上の,つづき.
まずは,よく知られているところから.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
「a に 65535 を代入し,b に a の値を代入しているのだから,b も 65535 になるはず.」 などとLL言語(JavaScript や Ruby など)に慣れていると思ってしまいがちだが,そうはならない.