Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #161260 > unrolled thread
| Started by | James Harris <james.harris.1@gmail.com> |
|---|---|
| First post | 2021-06-06 13:16 +0100 |
| Last post | 2021-06-17 19:30 +0200 |
| Articles | 20 on this page of 391 — 31 participants |
Back to article view | Back to comp.lang.c
Why does C allow structs to have a tag? James Harris <james.harris.1@gmail.com> - 2021-06-06 13:16 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-06-06 15:27 +0200
Re: Why does C allow structs to have a tag? Thiago Adams <thiago.adams@gmail.com> - 2021-06-07 06:00 -0700
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-06-07 18:06 +0200
Re: Why does C allow structs to have a tag? Öö Tiib <ootiib@hot.ee> - 2021-06-06 06:34 -0700
Re: Why does C allow structs to have a tag? James Harris <james.harris.1@gmail.com> - 2021-06-06 16:33 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-06 14:59 +0100
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-06 15:05 +0000
Re: Why does C allow structs to have a tag? Manfred <noname@add.invalid> - 2021-06-06 18:58 +0200
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-06-06 21:12 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-06 21:02 +0100
Re: Why does C allow structs to have a tag? Richard Harnden <richard.nospam@gmail.com> - 2021-06-06 21:25 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-06 15:13 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-06 23:55 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-06 17:02 -0700
Re: Why does C allow structs to have a tag? James Harris <james.harris.1@gmail.com> - 2021-06-07 18:42 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-07 19:39 +0100
Re: Why does C allow structs to have a tag? Manfred <noname@add.invalid> - 2021-06-07 17:15 +0200
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-07 12:03 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-07 20:55 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-06-07 22:17 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-07 21:54 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-07 13:22 -0700
Re: Why does C allow structs to have a tag? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2021-06-07 13:36 -0700
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-06-07 08:52 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-07 11:06 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-06-07 13:25 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-07 13:00 +0100
Re: Why does C allow structs to have a tag? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2021-06-07 07:25 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-07 16:31 +0100
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-07 16:15 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-07 17:53 +0100
Re: Why does C allow structs to have a tag? James Harris <james.harris.1@gmail.com> - 2021-06-07 19:02 +0100
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-07 22:26 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-08 00:19 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-07 17:06 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-08 11:13 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-08 11:43 -0700
Re: Why does C allow structs to have a tag? James Harris <james.harris.1@gmail.com> - 2021-06-07 18:54 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-07 19:57 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-06 15:10 -0700
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-06 14:51 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-06 16:05 +0100
Re: Why does C allow structs to have a tag? James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-06-06 14:20 -0400
Re: Why does C allow structs to have a tag? Richard Damon <Richard@Damon-Family.org> - 2021-06-06 15:03 -0400
Re: Why does C allow structs to have a tag? James Harris <james.harris.1@gmail.com> - 2021-06-07 18:38 +0100
Re: Why does C allow structs to have a tag? Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2021-06-08 08:06 -0600
Re: Why does C allow structs to have a tag? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2021-06-08 07:45 -0700
Re: Why does C allow structs to have a tag? Guillaume <message@bottle.org> - 2021-06-08 17:09 +0200
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-08 16:00 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-08 17:23 +0100
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-08 18:59 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-09 00:22 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-08 16:53 -0700
Re: Why does C allow structs to have a tag? James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-06-09 11:40 -0400
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-09 17:36 +0100
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-09 17:48 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-09 20:19 +0100
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-09 21:28 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-09 23:47 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-06-10 11:14 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-10 12:38 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-06-10 15:30 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-10 15:18 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-06-10 16:55 +0200
Re: Why does C allow structs to have a tag? Manfred <noname@add.invalid> - 2021-06-10 17:23 +0200
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-06-10 20:47 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-10 17:19 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-11 09:52 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-06-11 11:25 +0200
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-11 12:00 -0700
Re: Why does C allow structs to have a tag? Guillaume <message@bottle.org> - 2021-06-11 21:14 +0200
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-11 19:46 +0000
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-11 15:28 -0700
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-11 15:06 -0700
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-11 15:08 -0700
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-06-12 00:32 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-11 22:32 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-11 15:17 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-11 23:29 +0100
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-11 23:21 +0000
Re: Why does C allow structs to have a tag? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-06-12 00:39 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-12 01:11 +0100
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-12 00:51 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-12 11:08 +0100
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-12 16:12 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-12 18:36 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-12 13:06 -0700
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-12 12:42 -0700
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-06-12 14:13 +0200
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-10 15:16 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-10 16:45 +0100
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-10 16:56 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-10 19:32 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-09 22:37 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-09 15:12 -0700
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-09 23:18 +0000
Re: Why does C allow structs to have a tag? Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2021-06-08 09:25 -0600
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-08 16:13 +0000
Re: Why does C allow structs to have a tag? Richard Damon <Richard@Damon-Family.org> - 2021-06-08 21:43 -0400
Re: Why does C allow structs to have a tag? John Bode <jfbode1029@gmail.com> - 2021-06-08 15:03 -0500
Re: Why does C allow structs to have a tag? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-06-24 10:33 -0700
Re: Why does C allow structs to have a tag? Öö Tiib <ootiib@hot.ee> - 2021-06-24 13:45 -0700
Re: Why does C allow structs to have a tag? John Bode <jfbode1029@gmail.com> - 2021-07-01 17:57 -0500
Re: Why does C allow structs to have a tag? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-07-11 00:26 -0700
Re: Why does C allow structs to have a tag? John Bode <jfbode1029@gmail.com> - 2021-07-26 09:49 -0500
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-07-27 15:47 +0000
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-27 10:55 -0700
Re: Why does C allow structs to have a tag? Guillaume <message@bottle.org> - 2021-07-27 23:48 +0200
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-07-27 22:12 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-28 00:38 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-27 18:30 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-28 13:02 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-28 07:19 -0700
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-07-28 14:06 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-28 15:44 +0100
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-07-28 15:21 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-28 17:49 +0100
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-07-28 17:21 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-28 23:41 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-28 16:07 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-29 02:23 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-28 19:20 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-29 11:05 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-29 08:12 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-29 16:34 +0100
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-07-29 17:10 +0000
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-29 10:29 -0700
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-29 10:28 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-29 19:07 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-29 11:16 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-29 19:41 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-29 12:43 -0700
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-07-30 15:06 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-30 16:31 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-07-30 19:49 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-30 20:03 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-07-30 23:16 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-31 01:51 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-07-31 13:42 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-31 14:56 +0100
Re: Why does C allow structs to have a tag? Manfred <noname@add.invalid> - 2021-07-31 19:33 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-31 19:17 +0100
Re: Why does C allow structs to have a tag? Manfred <noname@add.invalid> - 2021-07-31 21:32 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-31 23:10 +0100
Re: Why does C allow structs to have a tag? Manfred <noname@add.invalid> - 2021-08-01 00:43 +0200
Re: Why does C allow structs to have a tag? Richard Damon <Richard@Damon-Family.org> - 2021-07-31 15:54 -0700
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-08-04 13:36 +0200
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-08-04 13:32 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-04 14:24 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-08-04 16:08 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-04 16:32 +0100
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-08-04 16:33 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-04 18:40 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-04 19:31 +0100
Re: Why does C allow structs to have a tag? DFS <nospam@dfs.com> - 2021-08-07 10:03 -0400
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-07 17:11 +0100
Re: Why does C allow structs to have a tag? DFS <nospam@dfs.com> - 2021-08-08 08:51 -0400
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-08 15:41 +0100
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-08-08 17:12 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-08 20:25 +0100
Re: Why does C allow structs to have a tag? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-08-08 20:21 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-08 20:38 +0100
Re: Why does C allow structs to have a tag? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2021-08-08 14:00 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-08 22:16 +0100
Re: Why does C allow structs to have a tag? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-08-08 22:17 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-08 22:32 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-08 23:13 +0100
Re: Why does C allow structs to have a tag? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-08-09 01:46 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-09 10:54 +0100
Re: Why does C allow structs to have a tag? Michael S <already5chosen@yahoo.com> - 2021-08-09 03:59 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-09 13:55 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-08-09 16:08 +0200
Re: Why does C allow structs to have a tag? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2021-08-09 07:53 -0700
Re: Why does C allow structs to have a tag? Michael S <already5chosen@yahoo.com> - 2021-08-09 08:28 -0700
Re: Why does C allow structs to have a tag? Michael S <already5chosen@yahoo.com> - 2021-08-09 08:19 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-09 16:51 +0100
Re: Why does C allow structs to have a tag? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-08-09 16:47 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-09 17:09 +0100
Re: Why does C allow structs to have a tag? Michael S <already5chosen@yahoo.com> - 2021-08-08 15:30 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-09 00:33 +0100
Re: Why does C allow structs to have a tag? DFS <nospam@dfs.com> - 2021-08-08 20:03 -0400
Re: Why does C allow structs to have a tag? Michael S <already5chosen@yahoo.com> - 2021-08-09 01:29 -0700
Re: Why does C allow structs to have a tag? DFS <nospam@dfs.com> - 2021-08-09 15:05 -0400
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-09 23:48 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-08-09 16:45 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-10 01:33 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-08-09 17:52 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-10 11:17 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-08-10 11:22 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-10 20:05 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-08-10 13:49 -0700
Re: Why does C allow structs to have a tag? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2021-08-10 03:03 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-10 16:27 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-08-10 11:17 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-10 20:23 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-08-10 14:00 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-10 22:54 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-08-10 15:32 -0700
Re: Why does C allow structs to have a tag? Andrey Tarasevich <andreytarasevich@hotmail.com> - 2021-08-09 17:53 -0700
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-08-09 18:27 -0700
Re: Why does C allow structs to have a tag? Michael S <already5chosen@yahoo.com> - 2021-08-10 01:55 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-10 12:19 +0100
Re: Why does C allow structs to have a tag? Michael S <already5chosen@yahoo.com> - 2021-08-10 02:04 -0700
Re: Why does C allow structs to have a tag? Michael S <already5chosen@yahoo.com> - 2021-08-10 09:42 -0700
Re: Why does C allow structs to have a tag? antispam@math.uni.wroc.pl - 2021-08-11 17:19 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-11 20:04 +0100
Re: Why does C allow structs to have a tag? antispam@math.uni.wroc.pl - 2021-08-11 20:19 +0000
Re: Why does C allow structs to have a tag? DFS <nospam@dfs.com> - 2021-08-11 16:51 -0400
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-08-11 21:33 +0000
Re: Why does C allow structs to have a tag? DFS <nospam@dfs.com> - 2021-08-11 19:10 -0400
Re: Why does C allow structs to have a tag? antispam@math.uni.wroc.pl - 2021-08-12 16:08 +0000
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-08-08 19:56 +0000
Re: Why does C allow structs to have a tag? DFS <nospam@dfs.com> - 2021-08-10 14:35 -0700
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-08-10 21:41 +0000
Re: Why does C allow structs to have a tag? DFS <nospam@dfs.com> - 2021-08-10 15:08 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-10 23:22 +0100
Re: Why does C allow structs to have a tag? DFS <nospam@dfs.com> - 2021-08-10 20:15 -0400
Re: Why does C allow structs to have a tag? antispam@math.uni.wroc.pl - 2021-08-11 08:34 +0000
Re: Why does C allow structs to have a tag? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-08-11 11:23 +0100
Re: Why does C allow structs to have a tag? Michael S <already5chosen@yahoo.com> - 2021-08-11 03:46 -0700
Re: Why does C allow structs to have a tag? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-08-11 14:29 +0100
Re: Why does C allow structs to have a tag? Michael S <already5chosen@yahoo.com> - 2021-08-11 07:26 -0700
Re: Why does C allow structs to have a tag? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-10-01 15:04 -0700
Re: Why does C allow structs to have a tag? Michael S <already5chosen@yahoo.com> - 2021-08-11 03:55 -0700
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-08-11 13:55 +0000
Re: Why does C allow structs to have a tag? Michael S <already5chosen@yahoo.com> - 2021-08-11 07:07 -0700
Re: Why does C allow structs to have a tag? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-10-01 13:44 -0700
Re: Why does C allow structs to have a tag? Andrey Tarasevich <andreytarasevich@hotmail.com> - 2021-10-01 22:40 -0700
Re: Why does C allow structs to have a tag? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-10-02 01:37 -0700
Re: Why does C allow structs to have a tag? DFS <nospam@dfs.com> - 2021-08-11 14:29 -0400
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-08-11 18:54 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-11 20:10 +0100
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-08-11 20:04 +0000
Re: Why does C allow structs to have a tag? DFS <nospam@dfs.com> - 2021-08-11 17:04 -0400
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-11 11:09 +0100
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-08-11 13:52 +0000
Re: Why does C allow structs to have a tag? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2021-08-11 08:01 -0700
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-08-11 15:06 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-11 16:47 +0100
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-08-11 16:14 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-11 18:27 +0100
Re: Why does C allow structs to have a tag? Andrey Tarasevich <andreytarasevich@hotmail.com> - 2021-08-11 11:01 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-11 19:45 +0100
Re: Why does C allow structs to have a tag? DFS <nospam@dfs.com> - 2021-08-11 15:55 -0400
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-11 22:10 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-08-11 22:47 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-11 23:00 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-08-12 10:29 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-12 12:10 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-08-12 16:28 +0200
Re: Why does C allow structs to have a tag? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2021-08-12 08:03 -0700
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-08-12 15:52 +0000
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-08-12 17:55 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-12 16:59 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-08-12 19:44 +0200
Re: Why does C allow structs to have a tag? antispam@math.uni.wroc.pl - 2021-08-12 19:02 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-12 20:22 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-08-12 11:10 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-12 23:17 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-08-12 16:52 -0700
Re: Why does C allow structs to have a tag? Richard Damon <Richard@Damon-Family.org> - 2021-08-12 22:22 -0400
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-08-12 19:51 -0700
Re: Why does C allow structs to have a tag? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-10-01 13:49 -0700
Re: Why does C allow structs to have a tag? antispam@math.uni.wroc.pl - 2021-08-12 16:52 +0000
Re: Why does C allow structs to have a tag? antispam@math.uni.wroc.pl - 2021-08-12 18:45 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-12 22:17 +0100
Re: Why does C allow structs to have a tag? antispam@math.uni.wroc.pl - 2021-08-11 21:09 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-11 23:13 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-11 23:30 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-08-12 10:39 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-12 12:26 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-08-12 16:44 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-12 17:20 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-08-12 20:00 +0200
Re: Why does C allow structs to have a tag? antispam@math.uni.wroc.pl - 2021-08-12 00:44 +0000
Re: Why does C allow structs to have a tag? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2021-08-11 10:39 -0700
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-08-11 17:52 +0000
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-08-11 11:41 -0700
Re: Why does C allow structs to have a tag? DFS <nospam@dfs.com> - 2021-08-08 16:00 -0400
Re: Why does C allow structs to have a tag? Ike Naar <ike@rie.sdf.org> - 2021-08-09 05:46 +0000
Re: Why does C allow structs to have a tag? Michael S <already5chosen@yahoo.com> - 2021-08-09 01:38 -0700
Re: Why does C allow structs to have a tag? Michael S <already5chosen@yahoo.com> - 2021-08-09 01:57 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-09 10:55 +0100
Re: Why does C allow structs to have a tag? James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-08-04 11:48 -0400
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-08-04 19:34 +0200
Re: Why does C allow structs to have a tag? antispam@math.uni.wroc.pl - 2021-07-31 19:18 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-31 22:35 +0100
Re: Why does C allow structs to have a tag? antispam@math.uni.wroc.pl - 2021-07-31 23:51 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-01 01:46 +0100
Re: Why does C allow structs to have a tag? Manfred <noname@add.invalid> - 2021-07-30 17:20 +0200
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-30 11:16 -0700
Re: Why does C allow structs to have a tag? Manfred <noname@add.invalid> - 2021-07-30 20:24 +0200
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-30 14:17 -0700
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-07-30 14:55 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-30 16:13 +0100
Re: Why does C allow structs to have a tag? "james...@alumni.caltech.edu" <jameskuyper@alumni.caltech.edu> - 2021-07-30 09:08 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-30 18:18 +0100
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-07-30 17:38 +0000
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-30 11:17 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-30 20:33 +0100
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-07-30 20:10 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-30 21:50 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-30 14:49 -0700
Re: Why does C allow structs to have a tag? "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2021-07-30 14:39 -0700
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-30 14:44 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-31 00:08 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-30 16:31 -0700
Re: Why does C allow structs to have a tag? antispam@math.uni.wroc.pl - 2021-07-31 19:57 +0000
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-30 11:01 -0700
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-07-30 23:28 +0200
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-30 15:19 -0700
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-30 11:12 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-30 20:26 +0100
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-07-30 20:08 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-30 22:10 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-30 15:34 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-31 00:13 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-30 16:36 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-31 02:23 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-30 21:14 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-31 11:27 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-31 15:29 -0700
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-31 15:48 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-01 00:14 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-31 16:25 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-01 00:52 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-01 00:29 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-31 16:50 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-01 01:16 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-31 18:01 -0700
Re: Why does C allow structs to have a tag? gazelle@shell.xmission.com (Kenny McCormack) - 2021-08-01 01:38 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-01 11:41 +0100
Re: Why does C allow structs to have a tag? gazelle@shell.xmission.com (Kenny McCormack) - 2021-08-01 19:14 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-01 11:54 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-08-01 16:34 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-08-01 14:58 -0700
Re: Why does C allow structs to have a tag? Manfred <noname@invalid.add> - 2021-08-01 19:27 +0200
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-30 14:43 -0700
Re: Why does C allow structs to have a tag? antispam@math.uni.wroc.pl - 2021-07-30 23:33 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-31 02:11 +0100
Re: Why does C allow structs to have a tag? antispam@math.uni.wroc.pl - 2021-07-31 20:33 +0000
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-07-31 02:14 +0000
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-30 21:23 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-31 11:39 +0100
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-31 12:58 -0700
Re: Why does C allow structs to have a tag? Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2021-07-31 21:21 +0000
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-07-30 14:54 +0000
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-30 10:47 -0700
Re: Why does C allow structs to have a tag? "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2021-07-30 14:16 -0700
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-07-30 14:51 +0000
Re: Why does C allow structs to have a tag? Manfred <noname@add.invalid> - 2021-07-30 20:22 +0200
Re: Why does C allow structs to have a tag? "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2021-07-30 14:07 -0700
Re: Why does C allow structs to have a tag? John Dill <jadill33@gmail.com> - 2021-07-29 06:09 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-29 14:26 +0100
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-07-29 13:51 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-07-29 16:18 +0100
Re: Why does C allow structs to have a tag? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-09-30 05:39 -0700
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-27 17:14 -0700
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-07-28 02:01 +0000
Re: Why does C allow structs to have a tag? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-07-27 19:07 -0700
Re: Why does C allow structs to have a tag? "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2021-07-27 12:32 -0700
Re: Why does C allow structs to have a tag? "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2021-07-27 12:41 -0700
Re: Why does C allow structs to have a tag? John Bode <jfbode1029@gmail.com> - 2021-07-30 09:02 -0500
Re: Why does C allow structs to have a tag? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-07-30 15:19 +0100
Re: Why does C allow structs to have a tag? John Bode <jfbode1029@gmail.com> - 2021-07-30 10:19 -0500
Re: Why does C allow structs to have a tag? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-07-30 16:34 +0100
Re: Why does C allow structs to have a tag? scott@slp53.sl.home (Scott Lurndal) - 2021-07-30 15:58 +0000
Re: Why does C allow structs to have a tag? Lowell Gilbert <lgusenet@be-well.ilk.org> - 2021-07-30 11:28 -0400
Re: Why does C allow structs to have a tag? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-09-06 05:20 -0700
Re: Why does C allow structs to have a tag? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-09-06 05:09 -0700
Re: Why does C allow structs to have a tag? Siri Cruise <chine.bleu@yahoo.com> - 2021-06-11 12:33 -0700
Re: Why does C allow structs to have a tag? Andrey Tarasevich <andreytarasevich@hotmail.com> - 2021-06-16 19:39 -0700
Re: Why does C allow structs to have a tag? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-06-17 11:50 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-17 12:02 +0100
Re: Why does C allow structs to have a tag? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-06-17 17:05 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-06-17 13:49 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-17 13:39 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-06-17 15:05 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-17 14:34 +0100
Re: Why does C allow structs to have a tag? David Brown <david.brown@hesbynett.no> - 2021-06-17 18:35 +0200
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-17 18:14 +0100
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-17 11:29 +0100
Re: Why does C allow structs to have a tag? Andrey Tarasevich <andreytarasevich@hotmail.com> - 2021-06-17 08:22 -0700
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-17 16:22 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-17 17:57 +0100
Re: Why does C allow structs to have a tag? Kaz Kylheku <563-365-8930@kylheku.com> - 2021-06-17 17:53 +0000
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-17 21:27 +0100
Re: Why does C allow structs to have a tag? Öö Tiib <ootiib@hot.ee> - 2021-06-17 17:58 -0700
Re: Why does C allow structs to have a tag? Bart <bc@freeuk.com> - 2021-06-18 11:25 +0100
Re: Why does C allow structs to have a tag? Guillaume <message@bottle.org> - 2021-06-17 19:30 +0200
Page 19 of 20 — ← Prev page 1 … 17 18 [19] 20 Next page →
| From | Keith Thompson <Keith.S.Thompson+u@gmail.com> |
|---|---|
| Date | 2021-07-27 19:07 -0700 |
| Message-ID | <87fsvzgpiq.fsf@nosuchdomain.example.com> |
| In reply to | #162069 |
Kaz Kylheku <563-365-8930@kylheku.com> writes:
> On 2021-07-27, Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote:
>> Kaz Kylheku <563-365-8930@kylheku.com> writes:
>>> On 2021-07-26, John Bode <jfbode1029@gmail.com> wrote:
>>>> If you're going to hide a struct or union type behind a typedef name,
>>>> don't make me hunt down the typedef to know how to access the members -
>>>> provide an API to do that for me.
>>>
>>> I don't find that reasonable; it's pretty common to make typedef names
>>> for structures just to have a shorthand for declaring them, without
>>> intending to create a fully opaque type with abstracted operations.
>>>
>>> typedef struct version {
>>> int major;
>>> int minor;
>>> } version_t;
>>>
>>> The typedef is co-located with the struct declaration; your ediutor
>>> should be able to jump to the definition of version_t which is
>>> the above line.
>>
>> I disagree. I prefer to refer to the type as "struct version" and not
>> bother with the typedef.
>>
>> I'm not arguing I'm right and you're wrong. It's just my preference
>> (for which I've given reasons before).
>
> Right, of course; but all I'm saying is that there exists a certain
> coding style with those typedefs, in which the typedefs do *not* signify
> "I am an opaque type accessed only by an API".
Agreed.
--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Working, but not speaking, for Philips
void Void(void) { Void(); } /* The recursive call of the void */
[toc] | [prev] | [next] | [standalone]
| From | "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> |
|---|---|
| Date | 2021-07-27 12:32 -0700 |
| Message-ID | <sdpmvm$15ao$2@gioia.aioe.org> |
| In reply to | #162054 |
On 7/27/2021 8:47 AM, Kaz Kylheku wrote:
> On 2021-07-26, John Bode <jfbode1029@gmail.com> wrote:
>> If you're going to hide a struct or union type behind a typedef name,
>> don't make me hunt down the typedef to know how to access the members -
>> provide an API to do that for me.
>
> I don't find that reasonable; it's pretty common to make typedef names
> for structures just to have a shorthand for declaring them, without
> intending to create a fully opaque type with abstracted operations.
>
> typedef struct version {
> int major;
> int minor;
> } version_t;
>
> The typedef is co-located with the struct declaration; your ediutor
> should be able to jump to the definition of version_t which is
> the above line.
[...]
100% pure nitpick... I got a bit scolded one time for using the *_t
suffix in a POSIX environment. Its reserved!
[toc] | [prev] | [next] | [standalone]
| From | "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> |
|---|---|
| Date | 2021-07-27 12:41 -0700 |
| Message-ID | <sdpngn$4m3$1@gioia.aioe.org> |
| In reply to | #162054 |
On 7/27/2021 8:47 AM, Kaz Kylheku wrote:
> On 2021-07-26, John Bode <jfbode1029@gmail.com> wrote:
>> If you're going to hide a struct or union type behind a typedef name,
>> don't make me hunt down the typedef to know how to access the members -
>> provide an API to do that for me.
>
> I don't find that reasonable; it's pretty common to make typedef names
> for structures just to have a shorthand for declaring them, without
> intending to create a fully opaque type with abstracted operations.
>
> typedef struct version {
> int major;
> int minor;
> } version_t;
>
> The typedef is co-located with the struct declaration; your ediutor
> should be able to jump to the definition of version_t which is
> the above line.
[...]
I still like to avoid typedefs from, time to time:
__________________________________
#include <stdio.h>
struct version
{
int major;
int minor;
};
void
version_output(
struct version const* const self
) {
printf("FooProg Version: (%d.%d)\n", self->major, self->minor);
}
static struct version g_version = { 0, 1 };
int main()
{
version_output(&g_version);
struct version version = { 0, 2 };
version_output(&version);
return 0;
}
__________________________________
[toc] | [prev] | [next] | [standalone]
| From | John Bode <jfbode1029@gmail.com> |
|---|---|
| Date | 2021-07-30 09:02 -0500 |
| Message-ID | <se10pa$h58$1@dont-email.me> |
| In reply to | #162054 |
On 7/27/21 10:47 AM, Kaz Kylheku wrote:
> On 2021-07-26, John Bode <jfbode1029@gmail.com> wrote:
>> If you're going to hide a struct or union type behind a typedef name,
>> don't make me hunt down the typedef to know how to access the members -
>> provide an API to do that for me.
>
> I don't find that reasonable; it's pretty common to make typedef names
> for structures just to have a shorthand for declaring them, without
> intending to create a fully opaque type with abstracted operations.
>
Being common doesn't make it right.
> typedef struct version {
> int major;
> int minor;
> } version_t;
>
> The typedef is co-located with the struct declaration; your ediutor
> should be able to jump to the definition of version_t which is
> the above line.
>
I work on remote Linux instances through terminal sessions - my
choices of editor are either vi or emacs, neither of which have
that kind of intelligence.
And I've been dealing with code where typedefs *aren't* co-located
with the type definition.
> Your remark makes sense for a typedef name for a pointer to such
> a structure. That's often intended to be an abstract handle.
>
Yeah, and what I'm saying is don't half-ass the abstraction - either
make it fully abstract or don't bother. Don't hide the information
I need to properly use the type behind a typedef. I would rather you
leave the type "naked", even if it's more eye-stabby or a pain in
the ass to type.
[toc] | [prev] | [next] | [standalone]
| From | Ben Bacarisse <ben.usenet@bsb.me.uk> |
|---|---|
| Date | 2021-07-30 15:19 +0100 |
| Message-ID | <87pmuzzxx2.fsf@bsb.me.uk> |
| In reply to | #162107 |
John Bode <jfbode1029@gmail.com> writes:
> On 7/27/21 10:47 AM, Kaz Kylheku wrote:
>> On 2021-07-26, John Bode <jfbode1029@gmail.com> wrote:
>>> If you're going to hide a struct or union type behind a typedef name,
>>> don't make me hunt down the typedef to know how to access the members -
>>> provide an API to do that for me.
>>
>> I don't find that reasonable; it's pretty common to make typedef names
>> for structures just to have a shorthand for declaring them, without
>> intending to create a fully opaque type with abstracted operations.
>
> Being common doesn't make it right.
>
>> typedef struct version {
>> int major;
>> int minor;
>> } version_t;
>> The typedef is co-located with the struct declaration; your ediutor
>> should be able to jump to the definition of version_t which is
>> the above line.
>
> I work on remote Linux instances through terminal sessions - my
> choices of editor are either vi or emacs, neither of which have
> that kind of intelligence.
I use etags+emacs. Works fine. There might even be a more modern and
automatic way to do this, but I tend to stick with what I've used
before.
--
Ben.
[toc] | [prev] | [next] | [standalone]
| From | John Bode <jfbode1029@gmail.com> |
|---|---|
| Date | 2021-07-30 10:19 -0500 |
| Message-ID | <se159u$hsm$1@dont-email.me> |
| In reply to | #162108 |
On 7/30/21 9:19 AM, Ben Bacarisse wrote:
> John Bode <jfbode1029@gmail.com> writes:
>
>> On 7/27/21 10:47 AM, Kaz Kylheku wrote:
>>> On 2021-07-26, John Bode <jfbode1029@gmail.com> wrote:
>>>> If you're going to hide a struct or union type behind a typedef name,
>>>> don't make me hunt down the typedef to know how to access the members -
>>>> provide an API to do that for me.
>>>
>>> I don't find that reasonable; it's pretty common to make typedef names
>>> for structures just to have a shorthand for declaring them, without
>>> intending to create a fully opaque type with abstracted operations.
>>
>> Being common doesn't make it right.
>>
>>> typedef struct version {
>>> int major;
>>> int minor;
>>> } version_t;
>>> The typedef is co-located with the struct declaration; your ediutor
>>> should be able to jump to the definition of version_t which is
>>> the above line.
>>
>> I work on remote Linux instances through terminal sessions - my
>> choices of editor are either vi or emacs, neither of which have
>> that kind of intelligence.
>
> I use etags+emacs. Works fine. There might even be a more modern and
> automatic way to do this, but I tend to stick with what I've used
> before.
>
Ah. I'm a vi dinosaur. I've tried to learn emacs, but I just don't
have the ability to keep all the key combinations straight. If there's
a way to do it in vi - well, I probably won't use it enough for it
to stick in working memory and will eventually forget about it
completely. I've used or created so many nifty macros over the years
that got used once or twice, then were abandoned.
Irrespective of all of that, my point remains - either fully abstract,
or don't bother.
[toc] | [prev] | [next] | [standalone]
| From | Ben Bacarisse <ben.usenet@bsb.me.uk> |
|---|---|
| Date | 2021-07-30 16:34 +0100 |
| Message-ID | <87eebfzufx.fsf@bsb.me.uk> |
| In reply to | #162114 |
John Bode <jfbode1029@gmail.com> writes:
> On 7/30/21 9:19 AM, Ben Bacarisse wrote:
>> John Bode <jfbode1029@gmail.com> writes:
>>
>>> On 7/27/21 10:47 AM, Kaz Kylheku wrote:
>>>> On 2021-07-26, John Bode <jfbode1029@gmail.com> wrote:
>>>>> If you're going to hide a struct or union type behind a typedef name,
>>>>> don't make me hunt down the typedef to know how to access the members -
>>>>> provide an API to do that for me.
>>>>
>>>> I don't find that reasonable; it's pretty common to make typedef names
>>>> for structures just to have a shorthand for declaring them, without
>>>> intending to create a fully opaque type with abstracted operations.
>>>
>>> Being common doesn't make it right.
>>>
>>>> typedef struct version {
>>>> int major;
>>>> int minor;
>>>> } version_t;
>>>> The typedef is co-located with the struct declaration; your ediutor
>>>> should be able to jump to the definition of version_t which is
>>>> the above line.
>>>
>>> I work on remote Linux instances through terminal sessions - my
>>> choices of editor are either vi or emacs, neither of which have
>>> that kind of intelligence.
>> I use etags+emacs. Works fine. There might even be a more modern and
>> automatic way to do this, but I tend to stick with what I've used
>> before.
>
> Ah. I'm a vi dinosaur.
Oh, I thought vi could do this "out of the box". But I'm not a vi
person so I may have got the wrong end of the stick.
> ... If there's
> a way to do it in vi - well, I probably won't use it enough for it
> to stick in working memory and will eventually forget about it
> completely.
That's fine. It the "neither of which [vi or emacs] have that kind of
intelligence" I was commenting on.
--
Ben.
[toc] | [prev] | [next] | [standalone]
| From | scott@slp53.sl.home (Scott Lurndal) |
|---|---|
| Date | 2021-07-30 15:58 +0000 |
| Message-ID | <QkVMI.7807$nj3.141@fx15.iad> |
| In reply to | #162114 |
John Bode <jfbode1029@gmail.com> writes:
>On 7/30/21 9:19 AM, Ben Bacarisse wrote:
>> John Bode <jfbode1029@gmail.com> writes:
>>
>>> On 7/27/21 10:47 AM, Kaz Kylheku wrote:
>>>> On 2021-07-26, John Bode <jfbode1029@gmail.com> wrote:
>>>>> If you're going to hide a struct or union type behind a typedef name,
>>>>> don't make me hunt down the typedef to know how to access the members -
>>>>> provide an API to do that for me.
>>>>
>>>> I don't find that reasonable; it's pretty common to make typedef names
>>>> for structures just to have a shorthand for declaring them, without
>>>> intending to create a fully opaque type with abstracted operations.
>>>
>>> Being common doesn't make it right.
>>>
>>>> typedef struct version {
>>>> int major;
>>>> int minor;
>>>> } version_t;
>>>> The typedef is co-located with the struct declaration; your ediutor
>>>> should be able to jump to the definition of version_t which is
>>>> the above line.
>>>
>>> I work on remote Linux instances through terminal sessions - my
>>> choices of editor are either vi or emacs, neither of which have
>>> that kind of intelligence.
>>
>> I use etags+emacs. Works fine. There might even be a more modern and
>> automatic way to do this, but I tend to stick with what I've used
>> before.
>>
>
>Ah. I'm a vi dinosaur. I've tried to learn emacs, but I just don't
>have the ability to keep all the key combinations straight. If there's
>a way to do it in vi - well, I probably won't use it enough for it
>to stick in working memory and will eventually forget about it
>completely. I've used or created so many nifty macros over the years
>that got used once or twice, then were abandoned.
Vi has supported ctags for decades. vim supports cscope integration.
[toc] | [prev] | [next] | [standalone]
| From | Lowell Gilbert <lgusenet@be-well.ilk.org> |
|---|---|
| Date | 2021-07-30 11:28 -0400 |
| Message-ID | <44bl6jzuqu.fsf@be-well.ilk.org> |
| In reply to | #162107 |
John Bode <jfbode1029@gmail.com> writes:
> On 7/27/21 10:47 AM, Kaz Kylheku wrote:
>> typedef struct version {
>> int major;
>> int minor;
>> } version_t;
>> The typedef is co-located with the struct declaration; your ediutor
>> should be able to jump to the definition of version_t which is
>> the above line.
>>
>
> I work on remote Linux instances through terminal sessions - my
> choices of editor are either vi or emacs, neither of which have
> that kind of intelligence.
Digressing, I know, but that's flatly untrue. Both programs have
had basic functionality for that, using external databases, for
thirty or forty years.
--
Lowell Gilbert, embedded/networking software engineer
http://be-well.ilk.org/~lowell/
[toc] | [prev] | [next] | [standalone]
| From | Tim Rentsch <tr.17687@z991.linuxsc.com> |
|---|---|
| Date | 2021-09-06 05:20 -0700 |
| Message-ID | <86y289vqt8.fsf@linuxsc.com> |
| In reply to | #162107 |
John Bode <jfbode1029@gmail.com> writes: > Yeah, and what I'm saying is don't half-ass the abstraction - either > make it fully abstract or don't bother. Don't hide the information > I need to properly use the type behind a typedef. I would rather > you leave the type "naked", even if it's more eye-stabby or a pain > in the ass to type. Note that what you're saying here is different from what you were saying before. It isn't that putting pointerness inside typedefs will per se cause problems, but only that you don't like them. There's nothing wrong with having an opinion, but don't dress it up as something more than what it is.
[toc] | [prev] | [next] | [standalone]
| From | Tim Rentsch <tr.17687@z991.linuxsc.com> |
|---|---|
| Date | 2021-09-06 05:09 -0700 |
| Message-ID | <8635qhx5v7.fsf@linuxsc.com> |
| In reply to | #162051 |
John Bode <jfbode1029@gmail.com> writes:
> On 7/11/21 2:26 AM, Tim Rentsch wrote:
>
>> John Bode <jfbode1029@gmail.com> writes:
>>
>>> On 6/24/21 12:33 PM, Tim Rentsch wrote:
>>>
>>>> John Bode <jfbode1029@gmail.com> writes:
>>>>
>>>> [...]
>>>>
>>>>> To reiterate a point I make a lot - typedef on its own creates
>>>>> leaky abstractions. If I need to know that I have to use the
>>>>> `.` or `->` operator on something, I'd rather have it declared
>>>>> as `struct A foo;` or `struct B *ptr;` instead of a type name
>>>>> that doesn't convey struct-ness at all. Same reason I don't
>>>>> like it when people hide pointers behind typedefs - I once spent
>>>>> half a day chasing my tail because somebody created a typedef
>>>>> name for a pointer type and used that as a template parameter
>>>>> for a vector in C++, such that when I was using an iterator I
>>>>> needed to write
>>>>>
>>>>> (*it)->do_something();
>>>>>
>>>>> However, since the typedef name didn't indicate pointer-ness *at
>>>>> all*, I wound up writing
>>>>>
>>>>> it->do_something();
>>>>>
>>>>> and g++ vomited up hundreds of incomprehensible error messages
>>>>> that basically boiled down to "you need to use a * here, dummy".
>>>>
>>>> Sounds to me like the culprit is C++, not typedefs.
>>>
>>> g++ doesn't handle errors in template parameters very well and
>>> generates a *lot* of hard-to-follow error messages for relatively
>>> simple mistakes. And at the time I was still relatively
>>> inexperienced with C++, which didn't help.
>>>
>>> But the typedef name (or, more properly, the incomplete and leaky
>>> abstraction introduced by that typedef name) was the actual
>>> culprit. [...]
>>
>> I stand by my earlier claim that the culprit here is C++
>> rather than typedefs.
>
> I honestly don't know how to make it any clearer. I lost time due
> to using the wrong syntax. I was using the wrong syntax because the
> information I needed in order to use the right syntax was hidden
> from me. That's not a function of it being C++, that's a function
> of the abstraction not being complete.
You reported a case in a C++ program where confusion of pointer
versus non-pointer generated "hundreds of incomprehensible error
messages", causing you to lose time tracking down the problem.
Consider an analogous case in C:
it.do_something();
with 'it' having the pointer-concealing-typedef'ed type. In gcc
this expression produce a one-line error message:
what.c:7:15: error: 'it' is a pointer; did you mean to use '->'?
and in clang pretty much the same. If we consider a case with a
type that is a pointer to the pointer-concealing-typedef'ed type,
such as:
it->do_something();
where we should have used
(*it)->do_something();
again gcc gives a one-line error message:
what.c:11:15: error: '*it' is a pointer; did you mean to use '->'?
and clang again pretty much the same.
In all of these cases fixing the problem takes perhaps 15 to 30
seconds. By far the larger part of the problem is C++, not any
"hidden" pointerness, which is why I say that the culprit here is
C++ rather than typedefs.
[toc] | [prev] | [next] | [standalone]
| From | Siri Cruise <chine.bleu@yahoo.com> |
|---|---|
| Date | 2021-06-11 12:33 -0700 |
| Message-ID | <chine.bleu-9B63E2.12331011062021@reader.eternal-september.org> |
| In reply to | #161260 |
In article <s9iea5$n5c$1@dont-email.me>,
James Harris <james.harris.1@gmail.com> wrote:
> So could C's struct tags be omitted from the language? If not, what does
> a struct tag add? Is it something to do with forward declarations or
> syntactic consistency with union tags, etc?
As explained in Algol 68 a recursive type must be built of one of
two forms: T = struct (ref T) and T = proc(T)T. The latter cannot
be constructed easily in C because C doesn't have forward
function declaration.
The former in C would be
typedef struct {T *t;} T;
but doesn't work because C doesn't allow forward declarations.
Struct tags provide enough information to allow forward
declarations while not looking like a forward declaration.
typedef struct T {struct T *t;} T;
-------- -------- -- -
| | | \- Declaration of T.
| | \----- Makes finite storage.
| \----------- Recursive T.
\--------------------- Forward declaration.
--
:-<> Siri Seal of Disavowal #000-001. Disavowed. Denied. Deleted. @
'I desire mercy, not sacrifice.' /|\
Discordia: not just a religion but also a parody. This post / \
I am an Andrea Doria sockpuppet. insults Islam. Mohammed
[toc] | [prev] | [next] | [standalone]
| From | Andrey Tarasevich <andreytarasevich@hotmail.com> |
|---|---|
| Date | 2021-06-16 19:39 -0700 |
| Message-ID | <saeclh$e0n$1@dont-email.me> |
| In reply to | #161260 |
On 6/6/2021 5:16 AM, James Harris wrote: > Does C, as a language, need to allow its structs to have tags? > > So could C's struct tags be omitted from the language? If not, what does > a struct tag add? Is it something to do with forward declarations or > syntactic consistency with union tags, etc? The tag is absolutely necessary when you want to declare a self-referential struct type, like a node in a linked list that must contain a pointer to the same type. Just try declaring a linked list node without using a tag. Report to the forum. -- Best regards, Andrey Tarasevich P.S. Of course, you can get around this by using `void *` pointers and explicit type casts everywhere, but that would still represent a major loss of language functionality.
[toc] | [prev] | [next] | [standalone]
| From | Ben Bacarisse <ben.usenet@bsb.me.uk> |
|---|---|
| Date | 2021-06-17 11:50 +0100 |
| Message-ID | <87wnqsix3z.fsf@bsb.me.uk> |
| In reply to | #161451 |
Bart <bc@freeuk.com> writes:
> On 17/06/2021 03:39, Andrey Tarasevich wrote:
>> On 6/6/2021 5:16 AM, James Harris wrote:
>>> Does C, as a language, need to allow its structs to have tags?
>>>
>>> So could C's struct tags be omitted from the language? If not, what does a struct tag add? Is it something to do with forward declarations
>>> or syntactic consistency with union tags, etc?
>> The tag is absolutely necessary when you want to declare a
>> self-referential struct type, like a node in a linked list that must contain a pointer to the same type.
>> Just try declaring a linked list node without using a tag. Report to the
>> forum.
>
> It's not actually that hard, you just use void*, with the odd cast as needed:
> typedef struct {
> int data;
> void* next;
> } node;
> When a cast is needed, you use (node*). No tags required. It's not as
> type-safe, but then blame those stupid tags.
The natural C definition is
struct node {
int data;
struct node *next;
};
Which has served me well for decades. But, if you don't want to call
the type by its natural name, just write
typedef struct node node;
struct node {
int data;
node *next;
};
and live happily ever after. Why would anyone use void * just to avoid
a single use of a struct tag?
--
Ben.
[toc] | [prev] | [next] | [standalone]
| From | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-06-17 12:02 +0100 |
| Message-ID | <xZFyI.49758$aOx3.30095@fx22.ams4> |
| In reply to | #161454 |
On 17/06/2021 11:50, Ben Bacarisse wrote:
> Bart <bc@freeuk.com> writes:
>
>> On 17/06/2021 03:39, Andrey Tarasevich wrote:
>>> On 6/6/2021 5:16 AM, James Harris wrote:
>>>> Does C, as a language, need to allow its structs to have tags?
>>>>
>>>> So could C's struct tags be omitted from the language? If not, what does a struct tag add? Is it something to do with forward declarations
>>>> or syntactic consistency with union tags, etc?
>>> The tag is absolutely necessary when you want to declare a
>>> self-referential struct type, like a node in a linked list that must contain a pointer to the same type.
>>> Just try declaring a linked list node without using a tag. Report to the
>>> forum.
>>
>> It's not actually that hard, you just use void*, with the odd cast as needed:
>
>> typedef struct {
>> int data;
>> void* next;
>> } node;
>
>> When a cast is needed, you use (node*). No tags required. It's not as
>> type-safe, but then blame those stupid tags.
>
> The natural C definition is
>
> struct node {
> int data;
> struct node *next;
> };
>
> Which has served me well for decades.
I've used linked lists without needing the concept of a 'tag' for
decades too.
But, if you don't want to call
> the type by its natural name, just write
>
> typedef struct node node;
> struct node {
> int data;
> node *next;
> };
>
> and live happily ever after. Why would anyone use void * just to avoid
> a single use of a struct tag?
>
I was responding to the "The tag is absolutely necessary ... " comment.
When I need to write actual C, then I use tags combined with typedef.
The tags are likely to be the same name as the typedef, but with a _ prefix.
When I generated C code, I used tags only without typedef.
When I don't write C, I don't use tags at all, and the language requires
a typedef equivalent. Here, I might occasionally use 'void*' for a
struct pointer when the struct-type involved is not visible.
[toc] | [prev] | [next] | [standalone]
| From | Ben Bacarisse <ben.usenet@bsb.me.uk> |
|---|---|
| Date | 2021-06-17 17:05 +0100 |
| Message-ID | <87r1h0iiiy.fsf@bsb.me.uk> |
| In reply to | #161455 |
Bart <bc@freeuk.com> writes:
> On 17/06/2021 11:50, Ben Bacarisse wrote:
>> Bart <bc@freeuk.com> writes:
>>
>>> On 17/06/2021 03:39, Andrey Tarasevich wrote:
>>>> On 6/6/2021 5:16 AM, James Harris wrote:
>>>>> Does C, as a language, need to allow its structs to have tags?
>>>>>
>>>>> So could C's struct tags be omitted from the language? If not, what does a struct tag add? Is it something to do with forward declarations
>>>>> or syntactic consistency with union tags, etc?
>>>> The tag is absolutely necessary when you want to declare a
>>>> self-referential struct type, like a node in a linked list that must contain a pointer to the same type.
>>>> Just try declaring a linked list node without using a tag. Report to the
>>>> forum.
>>>
>>> It's not actually that hard, you just use void*, with the odd cast as needed:
>>
>>> typedef struct {
>>> int data;
>>> void* next;
>>> } node;
>>
>>> When a cast is needed, you use (node*). No tags required. It's not as
>>> type-safe, but then blame those stupid tags.
>> The natural C definition is
>> struct node {
>> int data;
>> struct node *next;
>> };
>> Which has served me well for decades.
>
> I've used linked lists without needing the concept of a 'tag' for
> decades too.
But not in C, or do really use void * to avoid the canonical form?
>> But, if you don't want to call
>> the type by its natural name, just write
>> typedef struct node node;
>> struct node {
>> int data;
>> node *next;
>> };
>> and live happily ever after. Why would anyone use void * just to avoid
>> a single use of a struct tag?
>
> I was responding to the "The tag is absolutely necessary ... "
> comment.
I know. I just wanted to make sure no one took the void * idea
seriously by showing what everyone else does.
--
Ben.
[toc] | [prev] | [next] | [standalone]
| From | David Brown <david.brown@hesbynett.no> |
|---|---|
| Date | 2021-06-17 13:49 +0200 |
| Message-ID | <safcs6$a2t$1@dont-email.me> |
| In reply to | #161454 |
On 17/06/2021 12:50, Ben Bacarisse wrote:
> Bart <bc@freeuk.com> writes:
>
>> On 17/06/2021 03:39, Andrey Tarasevich wrote:
>>> On 6/6/2021 5:16 AM, James Harris wrote:
>>>> Does C, as a language, need to allow its structs to have tags?
>>>>
>>>> So could C's struct tags be omitted from the language? If not, what does a struct tag add? Is it something to do with forward declarations
>>>> or syntactic consistency with union tags, etc?
>>> The tag is absolutely necessary when you want to declare a
>>> self-referential struct type, like a node in a linked list that must contain a pointer to the same type.
>>> Just try declaring a linked list node without using a tag. Report to the
>>> forum.
>>
>> It's not actually that hard, you just use void*, with the odd cast as needed:
>
>> typedef struct {
>> int data;
>> void* next;
>> } node;
>
>> When a cast is needed, you use (node*). No tags required. It's not as
>> type-safe, but then blame those stupid tags.
>
> The natural C definition is
>
> struct node {
> int data;
> struct node *next;
> };
>
> Which has served me well for decades. But, if you don't want to call
> the type by its natural name, just write
>
> typedef struct node node;
> struct node {
> int data;
> node *next;
> };
>
> and live happily ever after. Why would anyone use void * just to avoid
> a single use of a struct tag?
>
Or if the two declarations are bothersome:
typedef struct node {
int data;
struct node *next;
} node;
Or if the repeated "node" is troublesome :
#define Struct(N) typedef struct N N; struct N
Struct(node) {
int data;
node *next;
};
Of course, that won't work if your aim is to say how problematic C's
flexibility is. And it won't work if you have decided that macros
(except for the silly, confusing and useless "#define While for") are
not to be used.
[toc] | [prev] | [next] | [standalone]
| From | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-06-17 13:39 +0100 |
| Message-ID | <MnHyI.13116$IPne.12920@fx27.ams4> |
| In reply to | #161457 |
On 17/06/2021 12:49, David Brown wrote:
> On 17/06/2021 12:50, Ben Bacarisse wrote:
>> Bart <bc@freeuk.com> writes:
>>> When a cast is needed, you use (node*). No tags required. It's not as
>>> type-safe, but then blame those stupid tags.
>>
>> The natural C definition is
>>
>> struct node {
>> int data;
>> struct node *next;
>> };
>>
>> Which has served me well for decades. But, if you don't want to call
>> the type by its natural name, just write
>>
>> typedef struct node node;
>> struct node {
>> int data;
>> node *next;
>> };
>>
>> and live happily ever after. Why would anyone use void * just to avoid
>> a single use of a struct tag?
>>
>
> Or if the two declarations are bothersome:
>
> typedef struct node {
> int data;
> struct node *next;
> } node;
>
>
> Or if the repeated "node" is troublesome :
>
> #define Struct(N) typedef struct N N; struct N
>
> Struct(node) {
> int data;
> node *next;
> };
>
This is good. With this macro, you're 1% along the path of creating a
new, improved language. Although not of course as good as a purpose-made
language, since it sits on top of C:
Your proposal still relies on struct tags. It creates 'node' in two
parallel namespaces. It allows both 'node X' and 'struct node Y'.
It's also not clear how well it works, if at all, with mutually
referential structs.
That is why such macro solutions don't really work. They also suffer
from the problem of everyone developing their own, incompatible workarounds.
> Of course, that won't work if your aim is to say how problematic C's
> flexibility is. And it won't work if you have decided that macros
> (except for the silly, confusing and useless "#define While for") are
> not to be used.
There was a discussion on Reddit about how the C-style loop:
for (A; B; C) D;
was not really equivalent to:
A;
while (B) {
D;
C;
}
because it had different behaviour with 'continue'; with 'for', it would
skip C, but with 'while', it would execute C.
I was saying most such loops, when not obviously performing iteration,
were really just while-loops and should be written as such.
To get around the problem with continue, I proposed a simple extension
to while-loops, acquiring one of the features of C for-loops, to make
them more attractive for such purposes. In my syntax (this wasn't a
specific C-language forum):
while B, C do
D
end
or:
while B do
D
step
C
end
I implemented both as proof-of-concept (and have retained the first as I
couldn't find a more suitable keyword for the second). In C syntax that
first might be:
while (B; C) D
Hence the reason I chose to use While to highlight that this is intended
as a while-loop, and not leave it to the reader to figure out what the
loop was supposed to do.
[toc] | [prev] | [next] | [standalone]
| From | David Brown <david.brown@hesbynett.no> |
|---|---|
| Date | 2021-06-17 15:05 +0200 |
| Message-ID | <safhbn$a29$1@dont-email.me> |
| In reply to | #161458 |
On 17/06/2021 14:39, Bart wrote:
> On 17/06/2021 12:49, David Brown wrote:
>> On 17/06/2021 12:50, Ben Bacarisse wrote:
>>> Bart <bc@freeuk.com> writes:
>
>>>> When a cast is needed, you use (node*). No tags required. It's not as
>>>> type-safe, but then blame those stupid tags.
>>>
>>> The natural C definition is
>>>
>>> struct node {
>>> int data;
>>> struct node *next;
>>> };
>>>
>>> Which has served me well for decades. But, if you don't want to call
>>> the type by its natural name, just write
>>>
>>> typedef struct node node;
>>> struct node {
>>> int data;
>>> node *next;
>>> };
>>>
>>> and live happily ever after. Why would anyone use void * just to avoid
>>> a single use of a struct tag?
>>>
>>
>> Or if the two declarations are bothersome:
>>
>> typedef struct node {
>> int data;
>> struct node *next;
>> } node;
>>
>>
>> Or if the repeated "node" is troublesome :
>>
>> #define Struct(N) typedef struct N N; struct N
>>
>> Struct(node) {
>> int data;
>> node *next;
>> };
>>
>
> This is good. With this macro, you're 1% along the path of creating a
> new, improved language. Although not of course as good as a purpose-made
> language, since it sits on top of C:
I'm not interested in making a new language, and I don't see this syntax
as being either better or worse than that of C - such details are
irrelevant in practice. It's nothing more than showing how you can
declare recursive structures in C without having to repeat tag or type
names, if such repetition bothers you.
>
> Your proposal still relies on struct tags. It creates 'node' in two
> parallel namespaces. It allows both 'node X' and 'struct node Y'.
No one /cares/. This is not a problem - not in real life, for people
writing real code. It has been somewhat interesting to discuss why C is
the way it is here - history can often be interesting. But no one is
actually concerned about the practice, or thinks there are real
problems, or thinks there is scope for real improvement.
>
> It's also not clear how well it works, if at all, with mutually
> referential structs.
>
> That is why such macro solutions don't really work. They also suffer
> from the problem of everyone developing their own, incompatible
> workarounds.
Macros are fine for this kind of thing if you think it makes the code
clearer. They /do/ work. Of course unnecessary, gratuitous use will be
counter-productive - surely that goes without saying, as it can be
applied to /everything/ in programming, indeed, everything in life.
And I think every serious programmer will be far happier to deal with a
few odd and unnecessary C macros like this to work around "defects" in C
than an entire incompatible home-made language created to avoid such
imaginary defects in C.
>
>> Of course, that won't work if your aim is to say how problematic C's
>> flexibility is. And it won't work if you have decided that macros
>> (except for the silly, confusing and useless "#define While for") are
>> not to be used.
>
> There was a discussion on Reddit about how the C-style loop:
>
> for (A; B; C) D;
>
> was not really equivalent to:
>
> A;
> while (B) {
> D;
> C;
> }
>
> because it had different behaviour with 'continue'; with 'for', it would
> skip C, but with 'while', it would execute C.
There are other differences.
>
> I was saying most such loops, when not obviously performing iteration,
> were really just while-loops and should be written as such.
If you want to write a "while" loop, C has a construct for that - it's
called "while".
It takes a special kind of perverse delight in causing confusion to
create a macro called "While" that has the meaning of "for" rather than
"while". Please do not do that unless it is in a thread about finding
confusing ways to write code - it just adds more work for others to try
to correct your misunderstandings and explain your mistakes and mixups
so that inexperienced C programmers don't confuse your posts with
reality or good advice.
[toc] | [prev] | [next] | [standalone]
| From | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-06-17 14:34 +0100 |
| Message-ID | <JbIyI.201853$co68.69985@fx03.ams4> |
| In reply to | #161459 |
On 17/06/2021 14:05, David Brown wrote:
> On 17/06/2021 14:39, Bart wrote:
>> This is good. With this macro, you're 1% along the path of creating a
>> new, improved language. Although not of course as good as a purpose-made
>> language, since it sits on top of C:
>
> I'm not interested in making a new language,
Everytime you respond to a flaw or omission by finding a macro
workaround, then you are creating new language elements.
>
>> Your proposal still relies on struct tags. It creates 'node' in two
>> parallel namespaces. It allows both 'node X' and 'struct node Y'.
>
> No one /cares/.
Well, the OP cares. Purists might care: C only has tags now because they
were there to start with. A proper typedef could have done away with
them. Now they're like one of Charles' carbuncles.
This is not a problem - not in real life, for people
> writing real code. It has been somewhat interesting to discuss why C is
> the way it is here - history can often be interesting. But no one is
> actually concerned about the practice, or thinks there are real
> problems, or thinks there is scope for real improvement.
>
>>
>> It's also not clear how well it works, if at all, with mutually
>> referential structs.
>>
>> That is why such macro solutions don't really work. They also suffer
>> from the problem of everyone developing their own, incompatible
>> workarounds.
>
> Macros are fine for this kind of thing if you think it makes the code
> clearer. They /do/ work. Of course unnecessary, gratuitous use will be
> counter-productive - surely that goes without saying, as it can be
> applied to /everything/ in programming, indeed, everything in life.
>
> And I think every serious programmer will be far happier to deal with a
> few odd and unnecessary C macros like this to work around "defects" in C
> than an entire incompatible home-made language created to avoid such
> imaginary defects in C.
Here's how my own 'macro' works, here defining mutually referential structs:
record node=
int data
ref node2 nextnode
end
record node2=
real data
ref node nextnode
end
It can be 'preprocessed' to normal C code full of struct tags and
whatnot. But:
* It uses syntax in line with the rest of the language
* It doesn't need to drag in a macro definition
* It only allows 'node' etc to be used, not 'struct node'
* It doesn't create a parallel 'node' symbol in another namespace
* It works fine with circular or mutual references (these can be in
either order)
> If you want to write a "while" loop, C has a construct for that - it's
> called "while".
Which hardly anybody uses! Nearly all for-loops I see that aren't
clearly an iteration are really just while-loops.
Most of them don't use 'continue' either so the minor discrepancy I
mentioned is not relevant.
> It takes a special kind of perverse delight in causing confusion
... by writing an obvious while loop as a for-loop. The tweak I
suggested can encourage more people to use the more appropriate kind of
loop.
[toc] | [prev] | [next] | [standalone]
Page 19 of 20 — ← Prev page 1 … 17 18 [19] 20 Next page →
Back to top | Article view | comp.lang.c
csiph-web