typedef float vec3[3];
void test(vec3 const vptr) {
*vptr = 1.f; // error: assignment of read-only location
vptr[0] = 1.f; // error: assignment of read-only location
vptr++; // no error
}
tüm typedefs içinC typedef const argüman
const vec3 vptr
aynı
vec3 const vptr
mi? Son iki arasında bir fark var mı? I
vec3 const vptr <==> float* const vptr // a constant pointer to an object
const vec3 vptr <==> const float* vptr // a pointer to a constant object
??? <==> const float* const vptr // a constant pointer to a constant object
kullanarak bu bildiriyi
alınamıyor. Sadece, bir fonksiyon parametresi için, ikisi de eşdeğerdir. – Peter
@Peter Onlar değil. Dizi parametreleri aslında (temel olarak tüm) koşullarda işaretçilere ayarlanır. Bu düzeltmeyi görmezden gelmek yerine, ayarlanmış dendiğinde Vlad daha doğrudur. – 2501