Re: mutually referential (Pg 140 K&R2)
- From: Barry Schwarz <schwarzb@xxxxxxxxx>
- Date: Fri, 22 Apr 2005 22:36:14 -0700
On 22 Apr 2005 21:13:49 -0700, "G Patel" <gaya.patel@xxxxxxxxx> wrote:
>Pg. 140 of K&R2 shows an example of mutually referential structure
>declarations...
>
>struct t
>{
> struct s *p;
>};
>
>struct s
>{
> struct t *q;
>};
>
>
>I ran the following test program through my C compiler to see if it
>would compile:
>
>#include <stdlib.h>
>
>struct t
>{
> struct s *p; /* type 'struct s' is not visible here */
>};
>
>struct s
>{
> struct t *q;
>};
>
>int main()
>{
> printf("Hello world\n");
> return 0;
>}
>
>
>It compiled and ran without any noticeable problems. I expected it to
>complain about the line I've commented above.
>
>How is this valid when the type 'struct s' is not in scope when *p is
>declared as a member of the type struct t?
>
>If this is 'valid' please tell me why scopes don't apply here. If this
>is 'not valid' please tell me how I can declare mutually referential
>struct types.
>
The fact that you compiler does not generate a diagnostic has no
bearing on whether the code is valid or not. The opposite is also
true. The compiler is allowed to generate a diagnostic even if the
code is perfectly valid.
Maybe you should raise the warning level on your compiler.
Maybe your compiler is defective in this area.
Maybe it is an extension your compiler provides. Can you disable
extensions?
<<Remove the del for email>>
.
- Follow-Ups:
- Re: mutually referential (Pg 140 K&R2)
- From: Lawrence Kirby
- Re: mutually referential (Pg 140 K&R2)
- References:
- mutually referential (Pg 140 K&R2)
- From: G Patel
- mutually referential (Pg 140 K&R2)
- Prev by Date: Re: mutually referential (Pg 140 K&R2)
- Next by Date: Re: How is strlen implemented?
- Previous by thread: Re: mutually referential (Pg 140 K&R2)
- Next by thread: Re: mutually referential (Pg 140 K&R2)
- Index(es):
Relevant Pages
|