Casting Pointers?
ZombineDev via Digitalmars-d
digitalmars-d at puremagic.com
Thu May 12 02:24:40 PDT 2016
On Thursday, 12 May 2016 at 08:41:25 UTC, John Burton wrote:
> I've been unable to find a clear definitive answer to this so
> please point me to one if it already exists in the manual or
> the forums.
>
> Is it safe to cast pointer types?
>
> double data;
> long p = *cast(long*)&data;
>
> (Excuse any silly syntax errors as I'm doing this on my phone).
>
> This used to be possible in C until people recently decided it
> not only was wrong, it had always been wrong :P (Ok I'm not
> entirely serious there but that's what this issue feels like...)
>
> Is this legal / valid in D and if not what is the appropriate
> way to efficiently access data like this?
Yes, it's perfectly legal in @system code, but only if you know
what you're doing ;) Take a look at std.math for example:
https://github.com/dlang/phobos/blob/v2.071.0/std/math.d#L4839
More information about the Digitalmars-d
mailing list