プリプロセッサ

ドキュメントとしてのプリプロのナニはインターネトなリソースとしては無いのか。仕方が無いので技術評論社の C 言語辞典を調べた。が、微妙に意味が分からん。ので、プリプロの機能確認なソースをこしらえて cpp に通してみた。

#define __BUILDIO(bwl,bw,type) \
static inline void out##bwl##_local(unsigned type value, int port) { \
   __asm__ __volatile__("out" #bwl " %" #bw "0, %w1" : : a"(value), Nd"(port)); \
} \
static inline void out##bwl \
static inline void out##bwl_quad

__BUILDIO(b,b,char)

んで、gcc -E してみると

$ gcc -E ../test.c 
# 1 "../test.c"
# 1 "<built-in>"
# 1 "<\245\263\245\336\245\363\245\311\245\351\245\244\245\363>"
# 1 "../test.c"

static inline void outb_local(unsigned char value, int port) { __asm__ 
__volatile__("out" "b" " %" "b" "0, %w1" : : "a"(value), "Nd"(port)); } 
static inline void outb static inline void outbwl_quad
$ 

こんな感じ。成程ね、連結するから後ろにも必要なワケですか。

である、と。

無知をさらけ出してるコトにそろそろ嫌気がさしてきつつある今日この頃。