前の日 / 次の日 / 最新 / 2009-06

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型は書いてはいけない?