ネスト可能なダブルクォーテーションからはじまる、プリプロセッサ拡張計画

(1)

(2)

(3)

(4)

(5)

#.adddef Abc, "+1" // Abcのdef内容に +1 を書き足します。

#.def Abc, "0"
#.def IncAbc, /"#.adddef Abc, "+1" "/
printf("%d ", Abc); IncAbc;
printf("%d ", Abc); IncAbc;
printf("%d ", Abc);
→ 「0 1 2 」と表示されます。
p0 = malloc(123); #.adddef FreBuf, "free(p0);"
p1 = malloc(456); #.adddef FreBuf, "free(p1);"
p2 = malloc(789); #.adddef FreBuf, "free(p2);"
...
...
...
FreBuf; #.undef FreBuf; // 新しくmallocを追加しても、記述を分散させずに済む。
#.def Sz "0"
int a[#.final(Sz)];
...
a[Sz] = 123; #.add Sz, "+1"
...
a[Sz] = 456; #.add Sz, "+1"
...
#.undef Sz;

(6)

puts(# #.!("Sz=%d", Sz)); → puts("Sz=2"); になる。

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS