タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

tipsとcに関するseiunskyのブックマーク (3)

  • Cでのポインタの読み方

    Cでのポインタの読み方 Cのポインタの読み方は、ルールを知らないと摩訶不思議です。 ルールを覚えれば、 int (*p[5])[3]; char (*(*fp)(void))(int); なんてのも解読する事ができます。 大事な前程 ポインタを読む際には、「英語で読む」必要があります。 「え~、英語~」 と思う方もいるかもしれませんが、逆に日語で読む方が大変です。 基ルール ルール 後置演算子が優先。 関数の() 配列の[] 前置はあとで。 要は、「後ろに何かあったら、後ろが優先」です。 演算子の英語での読み方 * pointer to ... () function returning ... [] array of ... Lesson 1 まず、演算子が単独で出てくる場合です。 Lesson 1-1 pointer to ... int *p; これは、まずpを見ましょう。 i

  • C言語でJavaと同等程度の例外処理をやってみる - ほんまの走り書き技術メモ

    ご存じの通りC言語には例外処理という立派なものは搭載されていない。 そこで、C言語でsetjmpという関数を使ってJavaと同等の例外処理をやってみる。 JavaとCでmy_divという関数を作って例外処理をする int型の引数を2つ持つ関数(メソッド)を定義して割り算した結果をintで返す a / bのときbがゼロの場合にゼロ除算例外を起こす a / bのときaがゼロの場合にその他の例外を起こす Javaでは・・ bがゼロの時は特に例外判定をする必要がなく、勝手にゼロ除算例外になるので次のようになる。 class Longjump { public static void main(String[] args) { int x, y, ans; if (args.length != 2) { System.err.println("Usage: java Longjump X Y");

    C言語でJavaと同等程度の例外処理をやってみる - ほんまの走り書き技術メモ
    seiunsky
    seiunsky 2009/02/20
    C言語での例外処理。なるほど、これはきれいだ。
  • C言語のプログラム終了時に呼ばれる関数 - ほんまの走り書き技術メモ

    atexitを使うとプログラム終了時に呼ばれる関数を登録できる。(void (*)()の関数) atexitは複数登録(スタックとして積まれる?)できるようで、後入れ先出しで実行される。 また、終了時の関数は少なくともATEXIT_MAX個(32個?)登録できるらしい。 使い方 #include <stdio.h> #include <stdlib.h> void func1(); void func2(); void func3(); int main() { atexit(func1); atexit(func2); atexit(func3); printf( "Enterキーを押すとプログラムを終了します\n" ); getchar(); return 0; } void func1() { printf( "終了中...func1\n" ); } void func2() { p

    C言語のプログラム終了時に呼ばれる関数 - ほんまの走り書き技術メモ
    seiunsky
    seiunsky 2009/02/20
    C言語で終了時に呼ばれる関数の設定 atexit
  • 1