GavriKos: варианты
-мы весь код автора не наблюдаем. У него может быть в другом месте написан похожий вывод, который он и получает
-прошивка не уходит в контроллер (изменения в исходном тексте не влияют на программу)
GavriKos: похоже на кривой компилятор у топикстартера - ideone все правильно сделал. На SO пишут, что C по стандарту засовывает hex-константу туда, куда она влезает согласно списку, который начинается с int
Показали бы кусок ваших данных что ли, и в чем они у вас хранятся. А то вам тут такого насоветуют (вроде хождения по stl-вектору без итератора, с push_back на каждой итерации), что ваша программа будет больше атмосферу обогревать.
Александр: я не смог быстро нагуглить готовое решение, но идея состоит в том, чтобы подключиться ко второму контроллеру по интерфейсу SPI/ISP, и записать в него программу. Описание записи программы по SPI в AVR есть в даташите на контроллер, примеры чтения файла с SD - карты найти нетрудно.
Для коллбэка этот трюк не подойдет, так как он требует передачи экземпляра F вместе с указателем P.
В CreateThread() например, такое передать не получится.
rxlrxl: рассмотрим плюсы:
+вы смещаете ошибки с типами на этап компиляции
+у вас не будет риска натворить дел с указателями
+вам не придется во время выполнения выяснять тип обрабатываемого объекта.
Реально, можно написать два скетча и посмотреть, какой ужаснее.
В 3D тетраэдр добавляется так, чтобы чтобы в описанную около него сферу не попадало ни одной точки.
Вычислять координаты центра описанной сферы удобно при помощи определителя Кэли-Менгера.