01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2009-06-16 Tue
■ C の .h から D のモジュールへの変換での const 型修飾子 [D言語]
const 型修飾子
D の const は、型修飾子ではなく記憶クラスです。従って、
型修飾子として使われている const は全て除いてしまいます:
void foo(const int *p, char *const q);
は、こうなります:
void foo(int* p, char* q);
D でこのように書いた場合、
void foo(const int* p)
C で同じ意味の記述は、
void foo(const int* const p)
になる。
C でこのように書いた場合、
void foo(const int* p)
D で同じ意味の記述は、
void foo(const(int)* p)
になる。
で、const 型修飾子の項目では、
const(int) や const(char) では無く、
const を除くように書いてあるのは、なぜだろう?
もしかして、Cのリンケージの関数には、
const(int) などの const型は書いてはいけない?