избегайте представления ловушек с помощью memcpy

Пожалуйста, обратите внимание на следующий код:

float float_value = x; // x is any valid float value
int int_value = 0;
size_t size = sizeof(int) < sizeof(float) ? sizeof(int) : sizeof(float);
memcpy(&int_value, &float_value, size);

Насколько я знаю, это может привести к представлению ловушки. Мои вопросы:

  1. Это правда?
  2. Если нет, то почему?
  3. Если нет, есть ли другой способ избежать возможного представления ловушки?
11
задан Jolta 11 April 2017 в 08:34
поделиться