Mr U1's Library tagged → View Popular
Cプログラミングの秘訣
-
list 1 if ((fp = fopen(filename, "r")) != NULL) {
...
} -
さて、この記法がポピュラーなのは何故か考えてみましたが、おそらくK&Rにごろごろ出てくるからだと思います
- 17 more annotations...
ファイル入出力の基本
-
ファイルポインタを,FILE型構造体へのポインタとして宣言する.FILE型構造体はstdin.hで宣言されており,その内容は処理系に依存するが,以下のような,ファイル入出力に必要不可欠な情報を管理している.
・ファイル位置指示子:現在のアクセス位置
・ファイル終了指示子:ファイルの終端に達したか
・エラー指示子:エラー情報
・関連するバッファへのポインタ:fopenによってこのポインタが取得される.
ファイルサイズの取得方法
c言語でのファイルサイズ取得方法
fseekでファイル終端に移動し、
fgetposでそのときの位置を求める
-
/* ファイルサイズを調査 */
fseek(fp,0,SEEK_END);
fgetpos(fp,&fsize); -
ファイル操作の最中に求める場合、ファイルポインタを元の位置に戻すようにしないとバグになります。
Cプログラミング診断室/これでもプロ/構造的欠陥
-
プログラム全体に影響の及ぶ宣言などは、個々のソースファイル(.c)には絶対に書いてはいけま
せん。グローバルなものは、すべてインクルードファイル(.h)にまとめましょう。
こうすれば、インクルードファイルに書かれているものがグローバルで、個々のファイルに書か
れているものはローカルなものとなり、所在がはっきりします。
Manpage of MALLOC
-
size
が 0 の場合、
malloc()
は NULL
または
free()
に後で渡しても問題の起こらない一意なポインタ値を返す。 -
malloc()
は NULL
または
free()
に後で渡しても問題の起こらない一意なポインタ値を返す。
C言語編 第20章 プリプロセッサ
-
#undef 記号定数名
指定された記号定数は、#undefより後ろでは無効になります。これは、ある関数内でのみ有効な記号定数を
作りたいときなどに便利です。「MAX」のような単純な名前の記号定数は、様々な場所で使う機会があります。同じ数字
を表すならいいのですが、場所によって異なるときに困ります。
C言語入門 9.プリプロセッサとメイクファイル
-
#elif
#elifはC言語の else if の意で#ifで偽であった時次に#elifで真・偽を判定
します。そこで真ならばこれ以下のプログラムをコンパイルします。
16.2.1 #ifdef 文
-
#define DEBUG
...
#ifdef DEBUG
cout << "Debug: hensuu = " << hensuu << endl;
#endif
つまり、DEBUGというマクロが定義されていたならば、#ifdefと#endifの間の行が有効になりますが、
もし最初の行の#define DEBUGがなければ、この#ifdefと#endifで囲まれた行はないものとして
プリプロセッサに処理され、結果として cout 文はコンパイラ
から見ると元から無かったようになります。
変数名補足 - いいプログラムを書こう
-
Ttl, Sum, Avg, Max, Min, Rec, Str, Ptrなど、変数名の前か後ろに付けます。
-
first/lastはわかりやすいですが、first/endは一般的ではありません(英語としては)
- 1 more annotations...
Cプログラミング診断室/普通の初心者/気になる個所
-
ハード関係をやっていると、unsigned の方が都合が
良いことが多いのは事実です。でも、なくても良いものは、ない方がプログラムが見やすくなりま
す。それではいやだというのなら、typedef unsigend char uchar;
という uchar 型を定義して、unsigned char と書く代わりに、たんに uchar と書いた方が見やす
いでしょう。 -
コンパイルの単位、つまりソースファイルの内部だけに名前を限定し、他の部分から「隠す」と
便利です。外部変数と関数の先頭にstaticをつけるとこの隠す機能が働きます。 - 1 more annotations...
Selected Tags
Related Tags
Sponsored Links
Top Contributors
Groups interested in c
-
C Language
Items: 2 | Visits: 40
Created by: Brant Chen
-
programming
Items: 7 | Visits: 34
Created by: Edward Mark
Diigo is about better ways to research, share and collaborate on information. Learn more »
Join Diigo
