Skip to main content

Mr U1's Library tagged c   View Popular

Cプログラミングの秘訣

  • list 1
        if ((fp = fopen(filename, "r")) != NULL) {
    ...
    }
  • さて、この記法がポピュラーなのは何故か考えてみましたが、おそらくK&Rにごろごろ出てくるからだと思います
  • 17 more annotations...
04 Aug 09

ファイル入出力の基本

  • ファイルポインタを,FILE型構造体へのポインタとして宣言する.FILE型構造体はstdin.hで宣言されており,その内容は処理系に依存するが,以下のような,ファイル入出力に必要不可欠な情報を管理している.



    ・ファイル位置指示子:現在のアクセス位置



    ・ファイル終了指示子:ファイルの終端に達したか



    ・エラー指示子:エラー情報



    ・関連するバッファへのポインタ:fopenによってこのポインタが取得される.

03 Aug 09

ファイルサイズの取得方法

c言語でのファイルサイズ取得方法
fseekでファイル終端に移動し、
fgetposでそのときの位置を求める

homepage3.nifty.com/...q_filesize.html - Preview

c coding tips

  • /* ファイルサイズを調査 */
    fseek(fp,0,SEEK_END);
    fgetpos(fp,&fsize);
  • ファイル操作の最中に求める場合、ファイルポインタを元の位置に戻すようにしないとバグになります。

Cプログラミング診断室/これでもプロ/構造的欠陥


  • プログラム全体に影響の及ぶ宣言などは、個々のソースファイル(.c)には絶対に書いてはいけま
    せん。グローバルなものは、すべてインクルードファイル(.h)にまとめましょう。


    こうすれば、インクルードファイルに書かれているものがグローバルで、個々のファイルに書か
    れているものはローカルなものとなり、所在がはっきりします。

Manpage of MALLOC

  • size

    が 0 の場合、
    malloc()

    は NULL

    または
    free()

    に後で渡しても問題の起こらない一意なポインタ値を返す。
  • malloc()

    は NULL

    または
    free()

    に後で渡しても問題の起こらない一意なポインタ値を返す。
17 Jul 09

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 文はコンパイラ
    から見ると元から無かったようになります。

15 Jul 09

変数名補足 - いいプログラムを書こう

  • 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...
09 Jul 09

ビット演算 - Wikipedia

  • NOT 0111
    = 1000

    C言語C++言語では、NOT演算子は "~" (チルダ)である。


    x = ~y;

    この例では、x に "NOT y" の結果を格納する。これは、Cおよび C++の論理「否定」演算子 "!" (エクスクラメーションマーク)とは異なる。こちらは与えられた数値全体をひとつのブーリアンとして扱う。


    x = !y;
1 - 20 of 48 Next › Last »
Showing 20 items per page

Diigo is about better ways to research, share and collaborate on information. Learn more »

Join Diigo