TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Henk den Adel
from: Mike Bilow
date: 1995-03-21 06:11:16
subject: Task list

Henk den Adel wrote in a message to All:

 HdA> PSWBLOCK pswblk;

Let's see... pswblk is of type PSWBLOCK, which is a pointer to an SWBLOCK.

 HdA>   printf("%s\n", *pswblk.aswentry.swctl.szSwtitle);

Oops!  The '.' operator has higher precedence than the '*' operator, so
this gets parsed as:

   *(pswblk.aswentry.swctl.szSwtitl)

which is, of course, wrong.

 HdA> The problem is that the added line (printf) contains an
 HdA> error: 

 HdA> TL.C(31:19) : error EDC0110: Operand of dot operator must be
 HdA> a struct or a union.

This is a valid error message, since the operand of the dot operator is
pswblk, which is not a struct but is a pointer to struct.

 HdA> It is a struct!

No, sorry!

 HdA> TL.C(31:19) : informational EDC0140: Operand has type
 HdA> pointer to structure _SWBLOCK.

Well, the parser is on the ball here.

 HdA> So what?

 HdA> What is wrong? The struct reference to all types of tags
 HdA> seems to be ok.  

 HdA> Does anyone have a clue?

Try instead:

   (*pswblk).aswentry.swctl.szSwtitl

which is merely awful style but is valid C syntax.  More standard would be:

   pswblk->aswentry.swctl.szSwtitl
 
-- Mike


---
* Origin: N1BEE BBS +1 401 944 8498 V.34/V.FC/V.32bis/HST16.8 (1:323/107)
SEEN-BY: 105/42 620/243 624/50 711/401 409 410 413 430 807 808 809 934 955
SEEN-BY: 712/407 515 628 704 713/888 800/1 7877/2809
@PATH: 323/107 150 3615/50 396/1 270/101 105/103 42 712/515 711/808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.