Mam pytanie, które jest w pewien sposób, jak sądzę, całkowicie banalne: co to jest (i dlaczego)?Niejasna deklaracja wskaźnika
const float *(*const*)(int)
moim rozumieniu jest to, że jest „wskaźnik do stałego wskaźnika do funkcji biorąc int jako argument i powrocie wskaźnik do stałej pływaka”.
Czy to prawda?
Jak "zanalizować mentalnie" (*const*)
? Zwłaszcza, że nie ma imienia, na początku nie wiedziałem, od czego zacząć. Myślę, że jedyną możliwością dla "nazwy" byłoby umieszczenie tego w ten sposób: *const *name
, ponieważ inna kombinacja jest nieważna (jeśli mam rację), więc "nazwa to wskaźnik do wskaźnika stałego ...".
Czy to uzasadnienie jest ważne?
Dzięki!
Staram się unikać takich głupich definicji, dzieląc je na komponenty za pomocą typedef. –
c giggerish do EN: "http://cdecl.ridiculousfish.com/?q=const+float+*%28*const*+foo%29%28int%29" – Anycorn
Dla każdego, kto ma problemy z podłączeniem powyższego kodu do kompilatora spróbuj umieścić go jako parametr w prototypie funkcji 'int foo (const float * (* const *) (int));' który jest taki sam jak 'int foo (const float * (* const * nazwa_zmienki) (int)) ; ' – nategoose