[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

Cと#に関するItisangoのブックマーク (2)

  • プリプロセッサでプログラムの質を向上させよう

    「#」演算子と「##」演算子 マクロ定義では、「#」演算子と「##」演算子が使えます。 引数を持つマクロ(関数型マクロ)では記述した引数がそのまま評価されますが、仮引数の前に「#」演算子を付けると、実引数がそのまま文字列になります。 // 通常のマクロの例 #define MACRO_A(a) a int x = MACRO_A(1 + 2); // int x = 1 + 2; // #演算子を使ったマクロの例 #define MACRO_B(b) # b char * y = MACRO_B(1 + 2); // char * y = "1 + 2";

    プリプロセッサでプログラムの質を向上させよう
    Itisango
    Itisango 2013/10/15
    #C の #macro の#と##演算子について。めったに #使わない から #忘れちゃう んですよね。
  • C 言語 マクロ講座 # ## 編: uyota 匠の一手

    # と ## はマクロ関数で使う。 # と ## 共に古くからマクロで実装されている。ところが、これを知らない人達がとても多い。 十年、二十年と C 言語を使ってきたという人でも知らないと言う人が結構いる。これを知らないから、余計なコードを書き、バグを増やし続けるのである。 高級言語と呼ばれる言語の中でも、単純な部類に入る C 言語。その C 言語よりも単純なマクロ言語の構文を把握していないのである。マクロ自体では、できることもたかが知れている。マクロでできるのは、ごく限られた置換や条件分岐処理程度のみだ。C 言語の構文だけでは、それこそ複数のファイルにコードを分けて書くこともできない。 ライブラリを作るのなどは、それこそ不可能だ。 しかし、C 言語はその欠点をマクロ言語を使い前処理することにより、強力な力を得た。C 言語以降もいくつもの高級言語が生まれてきたが、前処理を組み込んである言語

  • 1