In libgmp
I see typedef __mpz_struct mpz_t[1]
; what does [1]
mean here?
Does it mean typedef _mpz_struct* mpz_t
?
CodePudding user response:
It is not the same as a pointer.
It is defining a type named “mpz_t
” which is itself an array of __mpz_struct
s, where the array is exactly one element long.
A lot of times, you can figure this kind of stuff out by simply removing the typedef
and see what kind of variable you would be creating. In this case:
__mpz_struct mpz_t[1];
That there is an array of __mpz_struct
s exactly one element long, named “mpz_t
”.
Prefix that typedef
and now instead of declaring a variable name you are declaring a type name.