ノート:C言語

出典: フリー教科書『ウィキブックス(Wikibooks)』

FORTRANの登場が1957年、C言語の登場は1972年ですから「コンパイルによってマシン語コードを得るタイプの言語の草分け」と言うのはかなり無理があるんじゃないでしょうか。 220.214.133.213 2004年11月12日 (金) 16:22 (UTC)

目次

[編集] 実行環境は?

「書いてコンパイルしてみたでしょうか?」などと書かれているが、その方法を解説するべきでは? 実行環境を整えるということについて解説するとしたら、wikibooksとしてはどのようにするべきか? やはりフリーのgccなどだろうか? 219.109.48.17 2005年1月4日 (火) 05:34 (UTC)

  • 開発環境については代表的なものを紹介するだけにとどめるべきだと思います。各開発環境のインストール方法や使用方法は本来その開発環境の開発元が説明するべき内容であり、それを第三者が行うことは情報の信頼性が低くなり、またたとえ信頼性が低い情報であっても説明されたサイトが存在すると、利用者から開発元に説明を求める要求がおきにくくなるという問題も考えられます。--Toya shiwasu 2009年5月23日 (土) 09:39 (UTC)

[編集] 準拠する規格

一言でC言語と言っても、K&R-Cから最新のANSI/ISO-Cまで言語仕様は様々です. どの辺りを基準にしているのか、についての記述も欲しく思います. Akio, also known as "a perfect fool" 2005年1月20日 (木) 20:22 (UTC)

  • 準拠する規格は日本語で書かれた最も新しい規格「JISX3010 プログラム言語C」でいいと思います。特に昔の規格に準拠する必要もないでしょうし、英語の規格ですと訳語の統一が難しくなりますし。Toya shiwasu 2009年5月13日 (水) 21:24 (UTC)
  • 『JISX3010:2003 プログラム言語C』は日本工業標準調査会のホームページ「http://www.jisc.go.jp/ 」→「JIS検索」→「JIS規格番号からJISを検索」で「X3010」と入力し「一覧表示」→「JISX3010」→「規格の閲覧」で閲覧できます。--Toya shiwasu 2009年5月23日 (土) 10:09 (UTC)
  • また、読者にとって必要な情報は、JIS規格に書かかれてある内容だけであるとは思われません。C言語については、既に多くの方々が、ご自身のホームページでご紹介されています。

[編集] 目次案

上で意見が上げられているのはまさしくその通りでありまして…あと、現在の概要があまりに膨大になりすぎているのでこれらを整えたいと考えます。

目次案に対するコメント

  • 目次全体を修正。C言語の構成要素をデータとアルゴリズムにおおざっぱに分けてみました。Toya shiwasu 2009年5月13日 (水) 20:14 (UTC)
  • 「基礎知識」の項目を追加--Toya shiwasu 2009年5月28日 (木) 14:49 (UTC)
  • 「制御文」の項目を追加--Toya shiwasu 2009年6月9日 (火) 09:44 (UTC)
■はじめに
C言語とは
 ...歴史・規格・主な特徴について説明する。

開発環境を整える
 ...エディタとコンパイラ、統合開発環境の紹介。代表的なものにとどめる。
  個々のインストール方法や使用方法を説明したい場合は、別ページで行う。

開発手順
 ...ソースファイル、オブジェクトファイル、実行可能ファイル、
  エディタ、コンパイラ、リンカについて説明する。

Hello, World!を実行する
 ...意味のある最小のプログラムとしてHello, World!プログラムを実行する。
  プリプロセッサ、標準ライブラリ、関数などについて'''簡単に'''説明する。
  コピペではなく手入力を促す。

----
■基礎知識
C言語の基本事項を広く浅く学ぶ。
「基礎知識」のページを設ける理由は、
入力→記憶→演算→出力を行う簡単なプログラムを学んでから
C言語の個々の構成要素を学んだほうが
理解しやすいだろうと思ったから。
具体的にはscanf関数で数字を受け取り、
それを変数に格納し、簡単な演算を行って、
printf関数で結果を出力するような、
簡易計算機を作れるようになる程度の知識を目安とする。

----
■制御文
 論理型
 論理演算子
 比較演算子
 増分及び減分演算子
選択文
 if文
 switch文
繰り返し文
 while文
 do文
 for文
分岐文
 goto文
 continue文
 break文
 return文

----
■概略
 ...C言語の各要素の相互関係を分かりやすく説明する。
 ハードウェアの図(CPU,メモリ,HDD,モニタなど)と関連付けて説明する方法を考え中です。
 いい考えがあったら教えてください。

----以下は書きかけの目次案です
書式
 ...文・単語・字下げ・コメント
データを扱う
 データ型
 定数
 変数
  型キャスト
 ----
 配列
 文字と文字列
 ポインタ
 構造体
 共用体
 ----
 記憶クラス
 データ型の修飾
アルゴリズムを記述する
 演算子
  代入演算子
  算術演算子
  インクリメント/デクリメント演算子
  高度な演算子
  優先順位と結合規則
 制御構造
  if
  else if
  switch
  for
  while
  do~while
  break
  continue 
 関数
標準ライブラリ
 コンソール入出力...データをユーザーから受け取る、ユーザーに提示する
 文字列処理
 文字処理
 算術
 ファイル入出力...データを保存・読み込みする

----
■おわりに
 ...C言語を一通り勉強した読者に対して、次にどんなことを勉強したらよいか、など。
 アセンブリ、マシン語などについて軽く触れるか、wikibooks内に教科書を作ったらリンクする。

[編集] ページ分け案

関数の詳しい話や型の話は別ページ(関数や変数)に移動しても良いかと思います。 これを書いている時点の本文の趣旨は「入門用の一番最初の説明」だと思うので、あまりに詳しい話は避けるべきでは無いでしょうか?

もしくは、上の目次案のみをC言語のトップにして、「入門用の一番最初の説明」を別ページに設けるのも手かと思います。

Khiro 2005年7月17日 (日) 15:55 (UTC)

こんなのをひとまず作ってみましたがどうでしょうか

C言語メニュー
Fadis 2005年8月31日


・上の目次案にしたがってページを作成してみます。Toya shiwasu 2009年5月14日 (木) 18:07 (UTC) ・ページ「C言語」の本文に既にいくらか記述がありますが、冗長な表現が多く、また正確ではない記述も多く、修正しながら完成させることが非常に困難なため、新しいページをフルスクラッチで作成しています。作成したページに情報が全て含まれた項目から順次、ページ「C言語」から削除していく予定です。

C言語/はじめに
C言語/基礎知識
C言語/記法
C言語/制御文
C言語/配列
C言語/文字と文字列
C言語/ポインタ
C言語/関数
C言語/構造体・共用体
C言語/前処理字句
C言語/標準ライブラリ

[編集] 標準関数について

多くの場合C言語について書かれた本は、stdio.hを「とりあえずおまじないとして」書くように教えた後、printfなどを使って実際に動く様子を見せ、その後ライブラリという物について教える、というスタイルをとっています。が、できればライブラリというものを理解してからincludeを登場させた方が話がスムーズに運ぶと思います。サンプルを用意するのが非常に困難になるかもしれませんが、ライブラリについての説明より前の段階では極力includeを避けるべきだと思います。

Fadis 2005年8月31日

私も「おまじない」として説明を後回しにする方法は避けたいと考えています。しかし、入力と出力のためにscanf関数とprintf関数の使用は必須であると思われます。はじめに「C言語/基礎知識」というページをつくり、scanf関数、printf関数、変数、四則演算子、代入演算子などについて、(短く・分かりやすくのトレードオフが難しいとは思うが)最低限の説明をした方が、その後の説明がスムーズになると思います。--Toya shiwasu 2009年5月24日 (日) 07:54 (UTC)

[編集] While文の動作について

while文の項目で

while (式) {
  文1
  文2
}

while (式) 
  文1
while (式) 
  文2

が等価なコードであると説明されていますが、これは等価ではないと思います。 前者の場合は、文1と文2はまとまりとして繰りかえされますが、後者の場合は2つのwhile文は互いに独立なので、文1を繰り返してから文2を繰り返すことになると思います。 ですので、修正の必要があると思いますが、どうでしょうか? --Coolhorse 2009年5月18日 (月) 11:59 (UTC)

おっしゃる通り、修正が必要だと思います。間違いだと思った場合は、修正が大規模であったりしない限り、ノートでそのつど確認を取らなくてもかまわないと思いますよ。--Ajedony 2009年5月27日 (水) 10:36 (UTC) と、いうわけで修正しました。--Ajedony 2009年5月27日 (水) 10:52 (UTC)

[編集] 編集の方針

現在私が意識している編集の方針をまとめてみた。--Toya shiwasu 2009年6月13日 (土) 08:31 (UTC)

  • 未定義の専門用語をいきなり使わない。専門用語はきちんと定義してから使う。例「~とは、~である。」

依存関係上やむ終えない場合でもなるべく早く説明する。おそくとも同じページ内で説明するべき。

  • 脚注を詳細につける。
  • 本文と使用例をなるべく分離する。使用例によってページ長が長くなるべきではない。ページを折り込むべき。
  • 表にまとめただけで満足しない。表は情報密度が高すぎて、学習者にとっては、いきなりみても分からないと思われる。
ヘルプ