タグ

ブックマーク / uyota.asablo.jp (1)

  • C 言語 マクロ講座 ## 実用編: uyota 匠の一手

    ## の使い方だが、個人的に主に使うのは次の二つの場合だ。型違いの同じ関数をいくつも作りたい時。そして、複数の関数ポインタを含む構造体の配列を初期化する時。今回は前者の例をあげる。 各型に適した fread と fwrite を書くことにしよう。今回は、int 型、char 型と double 型を実装する。 % cat read_x.c #ifndef LIB #include #endif #define FREAD(type) \ size_t fread_ ## type(void *p, FILE* fd) \ { \ return fread(p, sizeof(type), 1, fd); \ } #define FWRITE(type) \ size_t fwrite_ ## type(void *p, FILE* fd) \ { \ return fwrite(p, si

  • 1