質問: お世話になります。 現在C#からCで作られたDLLを利用しようとしています。 そこで1つわからないことがあるので、教えていただけると幸いです。 Cのヘッダファイルには、下記の記述が記載されているのですが、C#ではそれぞれどの型を使えばいいのでしょうか。 ``` typedef uint16_t WORD; typedef uint32_t DWORD; typedef uint64_t QWORD; ``` たぶんuint32_tがint型で、uint64_tがlong型だとは思うのですが、uint16_tは何になるのでしょうか。 もしご存知でしたら教えていただけると幸いです。 ちなみに、uint32_tやuint_64_tに関しても、もし間違っていれば、ご指摘いただけると幸いです。 以上、よろしくお願いいたします。
回答: uint16_t → ushort uint32_t → uint uint64_t → ulong です。 先頭のuは、unsigned(符号なし)を示します。 今回出てきた型は、すべて符号なし整数ということになります。 よく使うshort, int, longとの違いは、おおざっぱに言うと負の整数を表せるか否かというとこになります。 符号なし整数は負の整数を表せない分、より大きな値を扱うことができます。 参考 整数型の一覧表 (C# リファレンス)