2008-02-03から1日間の記事一覧

cpp-undefined-macro - プリプロセッサの条件行での未定義マクロの働き

目的 未定義のマクロが、Cプリプロセッサの条件行でどう扱われるかを確認する 結果 未定義マクロXは、以下のように展開される。 defined(X) => 偽(結局は数値の0) マクロ展開 => 数値の0

cpp-macro-expand - プリプロセッサのマクロ展開の回数

目的 Cプリプロセッサでのマクロ展開は、再起的に可能か? 結果 不可能。一度展開したマクロは、展開結果にその内容が含まれていても、それ以上展開されない。 (Self-Referential Macros - The C Preprocessorに書かれている通りだった)

cpp-operators - Cプリプロセッサで利用可能な演算子を把握する

目的 Cプリプロセッサで、#if の行内で使える演算子がなにかを、漏れなく把握したい。 K&Rやウェブ検索では、適切に見つけられなかった。 結果 以下の演算子が使用可能(gcc-3.4.6の場合): 演算子 結合規則 備考 defined X (不明) (Xの前後に一重のみカッ…

c-operators - C言語で使用可能な演算子と優先順位

結果のみ C言語では以下が定義されている(はてな記法の制限のため、'|'だけ2バイト文字で表記している)。 演算子 結合規則 備考 () [] -> . 左から右 ! ~ ++ -- + - * & (type) sizeof 右から左 (単項演算子) * / % 左から右 + - 左から右 > 左から右 >=…