Interfacing D with C: Getting Started

Mike Parker aldacron at gmail.com
Wed Dec 6 04:33:38 UTC 2017


On Wednesday, 6 December 2017 at 04:27:01 UTC, Mike Parker wrote:
> On Wednesday, 6 December 2017 at 04:14:35 UTC, Arun 
> Chandrasekaran wrote:
>>> In D, long and ulong are always 8 bytes. This lines up with 
>>> most 64-bit systems under the version(Posix) umbrella, where 
>>> long and unsigned long are also 8 bytes. However, they are 4 
>>> bytes on 32-bit architectures. Moreover, they’re always 4 
>>> bytes on Windows, even on a 64-bit architecture.
>>
>> Why is this? How are we expected to write cross platform code 
>> with long/ulong? What are the alternatives?
>
> It's right there in the blog post:
>
> import core.stdc.config : c_ulong, clong;

Or was the paragraph ambiguous for you? long and ulong are always 
8 bytes in D. It's the C types that vary across platforms. I've 
updated the text as Joakim suggested for clarity.


More information about the Digitalmars-d-announce mailing list