"Интересный" код

Опубликовано Sep 12, 2011 в Собеседование: Результаты | 2 коммент.


"Интересный" код

Около месяца назад мы проводили очередное собеседование на позицию C++ Developer.

Офисное собеседование было решено начать с просьбы выполнить небольшое тестовое задание, в рамках которого, помимо реализации логики, требовалось записать результирующее значение типа int в файл.

Кандидат был знаком с функциями API CreateFile  и WriteFile.

После самостоятельной работы кандидатом был предложен следующий код:

int result;
// некоторая логика  ...
char *buf = new char[4];
int res1 = result;
for(int i = 0; i++; i< sizeof(result))
{
  char c = (char)  res1 & 0xF;
  buf[i] = c;
  res1 = res1>>sizeof(c);
}
WriteFile(hfile, buf, sizeof(buf), p1, p2);
...

Первый взгляд на код нас очень озадачил.

Попробуйте понять – зачем этот код?

Как выяснилось впоследствии – кандидат не знал, что можно получить указатель на область памяти, где хранится тип данных int как  int* pInt=  &result; Вместо этого было реализовано копирование в массив char с целью дальнейшей передачи массива для записи в файл (при этом был допущен ряд ошибок).

Вот с такими интересными и нестандартными решениями порой приходится сталкиваться в процессе интервью :)