苦Cの内容の転載などは自由ですが、苦Cからの引用であることを明記してください。 (どこかに「苦Cより」と書かれていればOKです。) 学校や会社などで生徒(新入社員)へのテキストとして使用することも自由です。 その際、内容を修正したり、印刷して配布するのも自由です。
![総合目次 - 苦しんで覚えるC言語](https://cdn-ak-scissors.b.st-hatena.com/image/square/3e44db08a0cecb3886877b7a2661df7c214f2336/height=288;version=1;width=512/https%3A%2F%2F9cguide.appspot.com%2Fimg%2F700%2F9c.jpg)
まだ途中。書き次第随時追記していきまする。間違いとか分かりにくい表現があったら遠慮無く指摘してくだしあ。
Cのプログラム先頭付近に,“#”で始まる命令がいくつか固まって書かれていることがある。中でもよく見かける#includeは,拡張子“.h”の「ヘッダー・ファイル」をソースコードに取り込む命令だ。「取り込まれるヘッダー・ファイルの中には宣言や定義が記されている」などと,本には書いてある。この宣言とか定義とは一体どのようなもので,どんな役割を果たしているのだろう? ヘッダー・ファイルと#で始まる命令について調査した。 Cのコンパイルは2段階に分かれている Cの,特にコマンドライン・インタフェースのプログラムには, #include <stdio.h> という1行が,半ば「おまじない」のように記述されている。もちろんこれはおまじないなどではないが,printfなどの関数やifなどの命令語とも違う。#includeや#defineのように,Cプログラムで使われる“#”の付いた予約語を「プリプロセサ
まだ完成途中です back 注意: このページの内容には、おそらく多くの間違いがあります。 リンクされているので残しておきますが、利用には注意してください。(2008年3月、新山) ここではおもに make の使い方 と Makefile の書き方について 説明しています。じつは make の種類にはいろいろあり、ここでは GNU make (gmake というコマンド名のこともある) を 対象にしています (BSD の pmake でも基本的な部分は同じですが、 マクロ定義などは違うところもあるので注意してください)。 わかりにくい箇所とか、まちがってる箇所がある場合はメールください。 Contents make はどんなときに使うか Makefile を作る make の実行 Makefile の文法リファレンス 多段 make について (未完成) Makefile の例 (未完成)
ApacheのFilterモジュールを作った話しをしたらid:c9katayamaに情報公開しろと言われたままでしたので公開します。 C言語の勉強しようかな、Apache2.xのモジュールを作ってみようかな、gdb使ってデバッグしてみようかなと考えてた人にお勧めです。 JavaでのServletの開発経験のある人であれば、Filterの処理の動きやリクエストコンテキストの考え方は分かり易いはずなので、エントリを読み終わる頃にはApacheのモジュールをgdbでデバッグしながら作る事が出来るはずです。 mod_orzを作成 今回はmod_orzというApacheモジュールを作成します。 Apacheモジュールを作成する際には、apxsというモジュール開発用のコマンドを使用しテンプレートを作ります。 # apxs -g -n orz Creating [DIR] orz Creating [F
もし、デバッグ用のバイナリファイルを作成するのであれば、CFLAGSに -g オプションを指定します。 $ make CFLAGS=0g helloworld 暗黙の規則と変数は、次のように -p オプションを使って表示 することができます。 $ make -p 別の例 別の例で、実際につかってみましょう。まず以下のソースコードをダウンロードしてみましょう。 helloworld_gtk.c Makefile このプログラムの中身は複雑になるので省きますが、前回書いたhelloworld.cというプログラムをポップアップ化したものです。コンパイルして実行すると画面に新しいウィンドウが現れ、「Hello World!」と表示されます。他に異なる点として、グラフィック関係の「ライブラリ」をリンクさせる必要があります。 ライブラリとはソフトウェアの一部を他ソフトウェアで再利用可能にするためのソフ
このウェブスペースへは、まだホームページがアップロードされていません。 早速、エックスサーバー上へファイルをアップロードしてみましょう。 アップロードの方法などは、サポートマニュアルをご参照ください。
Makefile を作ると C プログラムとか tex ファイルとかのコンパイルがすごく楽だ。 少し技を覚えたので書いておきます。 Makefile とは とりあえず使ってみる Makefile の基本構造と make の処理の概要 変数を使う (1) 変数を使う (2) 変数を使う (3) デフォルトの変数 .c を修正したら再コンパイル ヘッダファイルだけ修正した時もコンパイル [「unix めも」ページに戻る] [ホームに戻る] Makefile とは Makefile とは、プログラムを作っている時、修正するたびに % cc -o exe prog.c なんて打ちたくないときに、% makeひとつで コンパイルが出来るようにするためのファイルです。 [ページの1番上へ] とりあえず使ってみる 何か C プログラムとか tex ファイルとかを用意します。 例えば、hello.c
筆者は「日経ソフトウエア」というプログラミング雑誌で記事の執筆と編集をしている。先日,C言語にターゲットを絞った特集を企画・担当した。記事は無事校了し,今はこの特集を収録した2008年11月号が書店に並んでいる。 C言語の特集を企画した理由はただ一つ,C言語を学ぶことによって,プログラミングに関するより深い知見を得られると強く感じたからだ。筆者自身,C言語に不案内で苦手意識を感じていたので,その思いは余計に大きかった。同時に,だからこそ,筆者同様にC言語の経験が比較的少ない人,そしてこれからC言語を学ぼうという人に役に立つ特集に仕立てられるのではという気持ちもあった。 日経ソフトウエアとしては,C言語にターゲットを絞った特集をここ3年ほど掲載していなかった。その間にアプリケーション・ソフトウエアの大きな流れとしては,デスクトップ・アプリケーションからWebアプリケーションへの比重が高まり,
ポインタ虎の巻 初級篇~ポインタはなぜ難しいか? C言語を学ぶ上で、ほとんどの人が引っかかり、往々にCの勉強を放棄するきっかけとなるのがポインタである。しかし、ポインタはC言語という特定のプログラム言語だけではなく、コンピュータというものを理解する上で、必要不可欠な重要な機能である。C言語参考書では、ポインタを解説する上で「箱」のモデルを使って解説することが多いが、この虎の巻では、より突っ込んだ具体的な動作を解説することでポインタというものの本質を解明して見ようと思う。参考書ではC言語の抽象レベルの上で解説がされるのが通例だが、虎の巻では単純化されたアセンブリ命令を使って具体的に解説する。 初級篇目次 変数とは何か? 疑似アセンブリの定義 文字列の処理 アドレスの取得 ポインタの型 関数呼び出しの手法 構造体とポインタ リスト構造 NEW 二進木 NEW 中級篇~ポインタの高度な技 ポイン
構造体を使った応用例として、リスト構造が挙げられる。リスト構造は非常に本質的なデータ構造の一つであり、応用範囲が非常に広い。このリスト構造に習熟することがC言語初級卒業試験であるといっても過言ではない。 なぜリスト構造がこれほどに重要なのかというと、削除や挿入が簡単に出来るからである。配列の場合、とくに挿入はコスト高である。配列データの次に新しいデータを挿入するには、それ以降のデータを全部1つづつずらしてやらなければならない。削除の場合にもデータを詰める作業をするか、別個にフラグを持たせて「無効データ」をマーキングしてやる必要がある。 それに対し、リスト構造は挿入を低いコストで行うことができるが、その代わりに配列のように添字によるランダムアクセスはできなくなる。だから、添え字によるランダムアクセスのコストと、挿入のコストとのトレードオフとして選択すべきであるが、一般に有用なケースは非常に多
C言語講座>サイトマップ C言語講座:初級から中級まで プログラム言語は、自然言語とコンピュータ言語との間にある人工的な言語です。この講座では、C言語を学びます(開 設:2000.09.01)。 [サイトマップ][ガイダンス][C言語講座の出入り口][アルゴリズム研究室][ソースのコンパイル][C言語の作法][”C言語流”文章作成講座][お断り][使えるリンク集] [言葉は記憶の彼方へ] 死語、半死語、現行語、専門用語、業界用語、隠語。 [ハイテク昔話] 古い経験を、ただ古いだけの私がご紹介します。 [英単語に見える16進数] 病気か?死ぬの? [絵のない絵本式乗馬教室] 頭の中に馬を飼ってみませんか。 [プロフィール] [パクられました。][またパクられました。][またまたパクられました。] リンクはご自由に。メールはfujinoy@+cts.ne.jp(”+”を削除)へ。 C言語講座>
このリファレンスの読み方 FILE *fopen( char *path, char *mode); fopen という関数は、最初の引数に、文字型のポインタ(ファイル名の文字列の先頭アドレスを指す)、2番目の引数にファイルを開くモードを文字型のポインタ(文字列)として与える。戻り値はファイルポインタである。ずっと下の返り値の項目を読むと、ファイルが開けなかったときには、返り値は NULL になることが分かる。 標準入出力 scanf printf getchar putchar gets puts ファイル入出力 fopen fclose feof fprintf fscanf fgets fputs fgetc fputc 文字列操作 sscanf strcpy 文字列の複写 strcmp 文字列比較 strncmp n文字列比較 strlen 文字列の長さを得る メモリ管理 mall
[全ページ目次] 苦しんで覚えるC言語(苦C)は、初心者を対象としたC言語入門サイトです。 C言語の基本機能を体系立てて解説しており、市販書籍と同等以上の完成度です。 初めての人は 前書き から読み始めて下さい。 キーボードの矢印キーか、右下の進む>で次のページに移動します。 コンパイラ入手:基礎編:応用編:標準ライブラリ 全文検索:ダウンロード版:苦Cアンケート:ミス報告:掲示板で質問 [ 更新情報 ] 01月22日 : Visual C++ 2005 Express Edition 10月30日 : Borland C++ BuilderX Personal 10月07日 : 掲示板に寄せられたQ&A項目を作成 03月10日 : ドラッグへの対応 ※ミス報告で報告されたミスの修正は約100回以上行っています。 苦Cについて 苦Cの使用法(特に読まなくても良い
C入門 基礎知識は仮定しません あなたは 人目のお客さんです。 ゆっくりしていってください。 C入門をはじめます。これは、大学で受け持っている「Cの半期講義」の補助教材です。 ご利用になる場合は以下の点にご注意ください。 1. C++入門やJava入門の前提講義ではありません。 C++入門もJava入門も基礎知識を仮定していません。それらに興味のある人は、直接どうぞ。^^) 特に、私は、「C++やJavaを勉強するなら、まずCから」とは思いません。 「C → C++、Java」より「C++、Java → C」の順に勉強した方がよいかもしれません。 ただし、いずれにしても、Cを知っていて悪いことはありません。 2. 「プログラマ予備軍」のためのハードな講義ではありません。 あくまで半期科目です。「基礎教養」的な内容にしようと思っています。 特に、はじめてプログラミングをする人向きに書きます。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く