C言語なら俺に聞け(入門編)Part 115 (14レス)
前次1-
抽出解除 必死チェッカー(簡易版) レス栞 あぼーん

3: [] 2015/03/18(水) 11:55:24.33 ID:SMi9Fbq0(1/3)
Cプリプロセッサの#(文字列化)が期待通りに展開出来ない理由と対策

test1.c
#define STR(x) #x
STR(hoge)
を展開(cc -E test.c)すると
"hoge"
と期待通りに展開できるが、
test2.c
#define STR(x) #x
#define S hoge
省15
4
(1): [] 2015/03/18(水) 11:56:54.54 ID:SMi9Fbq0(2/3)
続き

(3)
関数形式マクロの実引数を識別した後,実引数置換を行う。実引数の中に含まれるす
べてのマクロの展開後,置換要素並びの中の仮引数を対応する実引数で置き換える。
ただし,次の仮引数は除く
- #前処理字句又は##前処理字句が前にある仮引数
- ##前処理字句が後に続く仮引数
-> 実引数Sはマクロ展開されない

(4)
置換要素並びの中で,仮引数の直前に#前処理字句がある場合,対応する実引数の前
省17
5: [] 2015/03/18(水) 12:51:16.33 ID:SMi9Fbq0(3/3)
>>4
訂正

(3)
関数形式マクロの実引数を識別した後,実引数置換を行う。実引数の中に含まれるす
べてのマクロの展開後,置換要素並びの中の仮引数を対応する実引数で置き換える。
ただし,次の仮引数は除く
- #前処理字句又は##前処理字句が前にある仮引数
- ##前処理字句が後に続く仮引数
-> 実引数Sはマクロ展開されない

(4)
省19
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.038s*