August 1st, 2007

nyaload

Сишные ужасы, печать трехмерных векторов через printf


#define VEC4_FMT "%f %f %f %f"
#define VEC4_FMT_DATA(v) v.x, v.y, v.z, v.w (или как там у вас)
printf("normal: " VEC4_FMT ", position: " VEC4_FMT, VEC4_FMT_DATA(normal), VEC4_FMT_DATA(position))
_Winnie C++ Colorizer



Аналогичный приём используется в стандартной библиотеке C99 (в Visual Studio эти заголовки приходится писать частично самому или рипать из MinGW):

#include <inttypes.h>
#include <stdint.h>
 
int64_t val;
...
printf("[%" PRId64 "]", val);
_Winnie C++ Colorizer


updated: ещё способ, C++