Hacker News new | ask | show | jobs
by barrkel 3834 days ago
Type punning is not fine in C99 - you need to use a correctly typed pointer or a char pointer.
1 comments

You're right. Type punning via pointer cast, e.g.

  int i = ...
  float f = *(float*) &i;
is not fine (violates strict aliasing). Type punning via union, e.g.

  union { int i; float f; } u;
  u.i = ...
  float f = u.f;
is, though (but only in C).

Just use memcpy :-)