Можно ли typedef массив?
У меня есть набор векторных функций, которые все принимают указатель на float, который представляет собой массив из трех поплавков. Я могу typedef float * vec3_t, однако он не позволит мне создать объект, просто установив его равным массиву в скобках.
typedef float* vec3_t;
vec3_t a = {1,1,1}; // Does not work
vec3_t b = (float[]){1,1,1}; // Works
float c[] = {1,1,1}; // Works
void f(vec3_t x);
f({1,1,1}); // Error
f((float[]){1,1,1}; // OK
Может кто-нибудь объяснить, почему это работает таким образом?