Cygwinでデバッグ/習慣の今昔
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[Cygwinでデバッグ]]
#contents
** 習慣の今昔 [#id9779ea]
コンピュータを取り巻く環境は、短い時間に大きく変化してき...
*** C言語の規格4世代 [#if871ccf]
C言語は、UNIX というオペレーティングシステム(OS)を記述す...
第2世代の言語規格は、当初の考案者の手を離れ、国際標準化...
> バイブルと呼ばれる書籍は、一般に難解で初学者を寄せ付け...
C89 から10年が経ち、C++ も成熟して Java も登場した頃のこ...
更に2011年には C11 と呼ばれる4世代目のC言語規格が策定さ...
C言語の4世代の特徴を列挙すると以下のようになります。
:K&R|関数の引数の型チェックなし
:ANSI C (C89)|プロトタイプ宣言による引数の型チェック, voi...
:C99|1行コメント(//), 変数宣言がブロックの途中でもよい, ...
:C11|gets()の廃止などの脆弱性対応, 型による分岐(Generic)...
新しい規格の中には、既に当時のコンパイラの独自拡張として...
> ANSI C と言えば、昔は紛れもなく C89 のことを指していま...
*** C言語の特徴 [#q0cdbaf1]
このように4世代に渡って進化してきたC言語です。今後もおよ...
- 言語規模が比較的小さい(コンパイラの製作が楽)
- ビット演算やポインタ操作など、ハードウェア寄りの操作が...
- グラフィック・マウスなどの外部デバイスは言語では規定せ...
- 文字列処理は苦手・危険
- 配列の添え字あふれなどの実行時エラーの検出が貧弱
つまり、当初のオペレーティングシステムを記述するという目...
例えて言えば、Javaがオートマチック車だとすれば、C言語はマ...
*** なぜC言語を学ぶのか [#ae8ed46c]
このようなプロのための言語を、コンピュータ言語の初学者が...
昔はコンパイラ(開発環境)は非常に高価なソフトウェアで、...
今、最初にC言語を学んでいる人も、これから先はいくつもの言...
*** 省略の美徳はK&Rの時代のもの [#o19e21f5]
K&R 時代には、コンピュータの能力が今とは比べ物にならない...
if (x % 5 != 0) { ... }
と書きますが、これを短くして
if (x % 5) { ... }
と、比較の != 0 は書かないという流儀があります。
> if の成立条件には != 0 は書いても書かなくても、結果は一...
> Java では if (x % 5) { ... } はエラーになります。
同様に、
if (malloc(size) != NULL)
とするところを、
if (malloc(size))
と書く流儀があります。書かずにすむことは、徹底して書かな...
しかしながら、malloc() 関数の動作説明には「エラーの場合、...
> 読み易さを根拠にどちらかを勧める人がいるかもしれません...
> なお、NULL がどんなコンパイラでも例外なく 0 である、と...
*** i++ と ++i の使い分けは職人技 [#e9478e3f]
i++ と ++i は、結果として i が1増えることには変わりありま...
int i=0; while (i++ < 1) { /* 1回実行される */}
int j=0; while (++j < 1) { /* 実行されない */}
上記の (i++ < 1) の条件は、iが1増える前に < の比較が行わ...
&br;(++j < 1) だとjが1増えた後に < の比較が行われ、(1 < 1...
もっと平易な書き方で代用すると次のようになります。
int i=0; while (i < 1) { i++; .....; }
int j=1; while (j < 1) { .....; j++; }
コンピュータの資源を無駄使いしないよう、少しでも短い表記...
*** (&&)||(&&) [#mc424cc9]
*** 変数名関数名の長さ制限 6文字 & 8文字 [#p01ffadb]
終了行:
[[Cygwinでデバッグ]]
#contents
** 習慣の今昔 [#id9779ea]
コンピュータを取り巻く環境は、短い時間に大きく変化してき...
*** C言語の規格4世代 [#if871ccf]
C言語は、UNIX というオペレーティングシステム(OS)を記述す...
第2世代の言語規格は、当初の考案者の手を離れ、国際標準化...
> バイブルと呼ばれる書籍は、一般に難解で初学者を寄せ付け...
C89 から10年が経ち、C++ も成熟して Java も登場した頃のこ...
更に2011年には C11 と呼ばれる4世代目のC言語規格が策定さ...
C言語の4世代の特徴を列挙すると以下のようになります。
:K&R|関数の引数の型チェックなし
:ANSI C (C89)|プロトタイプ宣言による引数の型チェック, voi...
:C99|1行コメント(//), 変数宣言がブロックの途中でもよい, ...
:C11|gets()の廃止などの脆弱性対応, 型による分岐(Generic)...
新しい規格の中には、既に当時のコンパイラの独自拡張として...
> ANSI C と言えば、昔は紛れもなく C89 のことを指していま...
*** C言語の特徴 [#q0cdbaf1]
このように4世代に渡って進化してきたC言語です。今後もおよ...
- 言語規模が比較的小さい(コンパイラの製作が楽)
- ビット演算やポインタ操作など、ハードウェア寄りの操作が...
- グラフィック・マウスなどの外部デバイスは言語では規定せ...
- 文字列処理は苦手・危険
- 配列の添え字あふれなどの実行時エラーの検出が貧弱
つまり、当初のオペレーティングシステムを記述するという目...
例えて言えば、Javaがオートマチック車だとすれば、C言語はマ...
*** なぜC言語を学ぶのか [#ae8ed46c]
このようなプロのための言語を、コンピュータ言語の初学者が...
昔はコンパイラ(開発環境)は非常に高価なソフトウェアで、...
今、最初にC言語を学んでいる人も、これから先はいくつもの言...
*** 省略の美徳はK&Rの時代のもの [#o19e21f5]
K&R 時代には、コンピュータの能力が今とは比べ物にならない...
if (x % 5 != 0) { ... }
と書きますが、これを短くして
if (x % 5) { ... }
と、比較の != 0 は書かないという流儀があります。
> if の成立条件には != 0 は書いても書かなくても、結果は一...
> Java では if (x % 5) { ... } はエラーになります。
同様に、
if (malloc(size) != NULL)
とするところを、
if (malloc(size))
と書く流儀があります。書かずにすむことは、徹底して書かな...
しかしながら、malloc() 関数の動作説明には「エラーの場合、...
> 読み易さを根拠にどちらかを勧める人がいるかもしれません...
> なお、NULL がどんなコンパイラでも例外なく 0 である、と...
*** i++ と ++i の使い分けは職人技 [#e9478e3f]
i++ と ++i は、結果として i が1増えることには変わりありま...
int i=0; while (i++ < 1) { /* 1回実行される */}
int j=0; while (++j < 1) { /* 実行されない */}
上記の (i++ < 1) の条件は、iが1増える前に < の比較が行わ...
&br;(++j < 1) だとjが1増えた後に < の比較が行われ、(1 < 1...
もっと平易な書き方で代用すると次のようになります。
int i=0; while (i < 1) { i++; .....; }
int j=1; while (j < 1) { .....; j++; }
コンピュータの資源を無駄使いしないよう、少しでも短い表記...
*** (&&)||(&&) [#mc424cc9]
*** 変数名関数名の長さ制限 6文字 & 8文字 [#p01ffadb]
ページ名: