連載・仕組みから理解するC言語

第1回 ビット演算の不思議 [2007年7月号掲載]

ビット演算子と論理演算子の違い
XORによる暗号化プログラム

第2回 「数値」と「文字」は違うけど同じもの [2007年8月号掲載]

printf関数の悪夢
文字化けがなくても文字は化けている
言語を切り替えるchcpコマンド

第3回 メモリーとアドレスからポインタを理解する [2007年9月号掲載]

ポインタ一つで配列から配列にコピーする
アドレスありきで考えよ!
見た目通りではない「配列の正体」とは?
禁じ手なのに学ぶ価値がある

第4回 1を足すと4増える,ポインタと型の悩ましい関係 [2007年10月号掲載]

1を足しても1増えない理由
強引に割り込むと何が起こるか

第5回 サイズ合計が全体サイズと一致しない,構造体のミステリー!? [2007年11月号掲載]

並び順を変えてサイズが変わる例
無駄遣いを排除するには?
めでたしめでたし…ではない
それでも#pragma packが要るケース

第6回 不可解な計算結果を導き出す,実数計算のミステリー [2007年12月号掲載]

浮動小数点という仕組み
見た目と実際の割り切れなさ
誤差の出る値,出ない値
絶対に安全な計算

第7回 時の迷宮・トラップだらけの日付/ 時刻処理 [2008年1月号掲載]

同じ値でも違う結果が出る
「協定世界時」をベースに時差と夏時間を加味
「未来の問題」では済まない2038年問題
安全な日付/時刻処理の指針

第8回 引数が違っても呼び出せる!? 関数定義と呼び出しのミステリー [2008年2月号掲載]

ミステリー1:引数の数と型が一致しない呼び出し
解答編1:初期のCは厳格な引数指定ができない
関数原型宣言で安全な前方参照を
ミステリー2:返却値の暗黙的な宣言
解答編2:リンク時に型の不一致が見逃される
ヘッダー・ファイルで情報を共有する
ミステリー3:関数原型宣言なしで安全に呼び出せる?
解答編3:関数ポインタを利用する

第9回 共用体がもたらす安全と危険 [2008年3月号掲載]

異なる型の値を同じメモリーに保持できる
float版暗号化プログラムを作る
共用体を使うことで安全性が向上する

第10回 相当使えるソート機能「qsort」 [2008年4月号掲載]

qsortの関数ポインタは怖くない
「決まったサイズ」,「連続したデータ」ならなんでもOK
qsortのわな:交換されるメモリー
qsort関数,第2の問題の解決策qsort_s関数

第11回 「シフトJIS」と「US-ASCII」,区別するときしないとき [2008年5月号掲載]

●str系でもシフトJISを扱えるケース
●str系でシフトJISを扱えないケース
_mbsに置き換えれば済むか?
文字列の「長さ」はバイト数か文字数か
名前の読み方

最終回(第12回) 文字の迷宮を解決するUnicode プログラミング [2008年6月号掲載]

日本語の文字を文字定数として使える
ラフなコードでも日本語を処理できる
悪夢の再来か?! 「サロゲート・ペア」の問題
致命的な欠陥は取り除かれている
UTF-8という別解
終わりに

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-07-28 (火) 11:38:35