[krbdev.mit.edu #4057] GSSAPI opaque types should be pointers to opaque structs, not void*
Marcus Watts
mdw at umich.edu
Wed Jul 26 03:25:11 EDT 2006
Nicolas Williams <Nicolas.Williams at sun.com> writes:
...
> You may not want to declare the partial structs.
>
> The difference between this:
>
> struct gss_name_struct;
> typedef struct gss_name_struct * gss_name_t;
>
> and this:
>
> typedef struct gss_name_struct * gss_name_t;
>
> is that with the former you can't provide an actual definition for
> gss_name_struct in libgss, but with the latter you can. This in turn
> saves the need for automatic variables and casting.
>
> I know. Sun did the former. But we might fix that...
Are you saying this shouldn't work:
/* x.c */
struct gss_name_struct;
typedef struct gss_name_struct * gss_name_t;
struct gss_name_struct {
int x;
char *y;
} foo[1];
and if so, what compiler???
As far as I know, the two forms you gave above should be completely
interchangeable. The 2nd form you gave should[*] have exactly the same
effect on the compiler as the first form except for being slightly shorter.
[*] "imho", or assumes sane C compiler & standard(s)
-Marcus Watts
More information about the krbdev
mailing list