是否可以 typedef 一个数组?
我有一组向量函数,它们都接受一个指向浮点数的指针,浮点数是三个浮点数的数组。我可以 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
有人可以解释一下为什么会这样吗?