* 連載・仕組みから理解するC言語 [#u15a490a]
-日経ソフトウェア2007年7月~2008年6月号
-全12回
-対象処理系: Visual C++ 2005 (Cコンパイラとして使用)
-入門者向けの[[連載/300.みんな納得! のっけからC言語]]内のコーナーとして連載された中上級者向け連載
-記事内の記事であるため、2~3ページの比較的短い連載であることが特徴。そのため、掲載時にカットされた原稿がかなり多い
-内容は全面改定され、連載時にカットされた原稿も復活、対象処理系をVisual C++ 2008/MinGWに変更して[[単行本/100.C言語教科書【入門編】]]の続編に収録予定

** 第1回 ビット演算の不思議 [2007年7月号掲載] [#h7c9fd17]
 ビット演算子と論理演算子の違い
 XORによる暗号化プログラム

** 第2回 「数値」と「文字」は違うけど同じもの [2007年8月号掲載] [#te1c3ff0]
 printf関数の悪夢
 文字化けがなくても文字は化けている
 言語を切り替えるchcpコマンド

** 第3回 メモリーとアドレスからポインタを理解する [2007年9月号掲載] [#r83ad63c]
 ポインタ一つで配列から配列にコピーする
 アドレスありきで考えよ!
 見た目通りではない「配列の正体」とは?
 禁じ手なのに学ぶ価値がある

** 第4回 1を足すと4増える,ポインタと型の悩ましい関係 [2007年10月号掲載] [#vea5be28]
 1を足しても1増えない理由
 強引に割り込むと何が起こるか

** 第5回 サイズ合計が全体サイズと一致しない,構造体のミステリー!? [2007年11月号掲載] [#lf9e74d9]
 並び順を変えてサイズが変わる例
 無駄遣いを排除するには?
 めでたしめでたし…ではない
 それでも#pragma packが要るケース

** 第6回 不可解な計算結果を導き出す,実数計算のミステリー [2007年12月号掲載] [#fa5ac53b]
 浮動小数点という仕組み
 見た目と実際の割り切れなさ
 誤差の出る値,出ない値
 絶対に安全な計算

** 第7回 時の迷宮・トラップだらけの日付/ 時刻処理 [2008年1月号掲載] [#f01529ee]
 同じ値でも違う結果が出る
 「協定世界時」をベースに時差と夏時間を加味
 「未来の問題」では済まない2038年問題
 安全な日付/時刻処理の指針

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

** 第9回 共用体がもたらす安全と危険 [2008年3月号掲載] [#r7813c51]
 異なる型の値を同じメモリーに保持できる
 float版暗号化プログラムを作る
 共用体を使うことで安全性が向上する

** 第10回 相当使えるソート機能「qsort」 [2008年4月号掲載] [#vfb9b9f0]
 qsortの関数ポインタは怖くない
 「決まったサイズ」,「連続したデータ」ならなんでもOK
 qsortのわな:交換されるメモリー
 qsort関数,第2の問題の解決策qsort_s関数

** 第11回 「シフトJIS」と「US-ASCII」,区別するときしないとき [2008年5月号掲載] [#j46c6700]
 ●str系でもシフトJISを扱えるケース
 ●str系でシフトJISを扱えないケース
 _mbsに置き換えれば済むか?
 文字列の「長さ」はバイト数か文字数か
 名前の読み方

** 最終回(第12回) 文字の迷宮を解決するUnicode プログラミング [2008年6月号掲載] [#w576ab42]
 日本語の文字を文字定数として使える
 ラフなコードでも日本語を処理できる
 悪夢の再来か?! 「サロゲート・ペア」の問題
 致命的な欠陥は取り除かれている
 UTF-8という別解
 終わりに


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS