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 3 of 20 — ← Prev page 1 2 [3] 4 5 … 20 Next page →
| From | Keith Thompson <Keith.S.Thompson+u@gmail.com> |
|---|---|
| Date | 2021-06-06 15:10 -0700 |
| Message-ID | <87zgw2ve3n.fsf@nosuchdomain.example.com> |
| In reply to | #161269 |
Bart <bc@freeuk.com> writes:
> On 06/06/2021 13:16, James Harris wrote:
>> Does C, as a language, need to allow its structs to have tags?
>>
>> AIUI a fragment such as "struct A {....};" reserves no storage but
>> declares a template which can be used later, e.g. to declare a
>> variable as in
>>
>> struct A var;
>>
>> to declare a parameter as in
>>
>> void f(struct A parm) {....}
>>
>> to effect a cast as in
>>
>> (struct A *) p
>>
>> etc but in all such cases struct A is being used as a type. And
>> there is a more general feature for that in typedef.
>>
>> 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?
>
> They add nothing at all to the language. Other languages don't need
> them. Even C++ I think is moving away from them.
No, it isn't.
In C, you can define a structure type as
struct foo { /* members /* };
where "foo" is the tag. The name of the resulting type is "struct foo".
You can optionally add a typedef if you prefer to refer to it as "foo"
In C++, the same type, defined with the same syntax, can be referred to
either as "struct foo" or as "foo"; the latter is more common. The
identifier "foo" is still the struct tag. C++ has worked this way for
decades; it's not "moving away" from anything.
[...]
--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Working, but not speaking, for Philips Healthcare
void Void(void) { Void(); } /* The recursive call of the void */
[toc] | [prev] | [next] | [standalone]
| From | Kaz Kylheku <563-365-8930@kylheku.com> |
|---|---|
| Date | 2021-06-06 14:51 +0000 |
| Message-ID | <20210606074535.550@kylheku.com> |
| In reply to | #161260 |
On 2021-06-06, James Harris <james.harris.1@gmail.com> wrote:
> etc but in all such cases struct A is being used as a type. And there is
> a more general feature for that in typedef.
typedef is general, but a general what?
It's purely a type aliasing mechanism for giving names to existing
types. It doesn't define new types.
> 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 essential in the C design for self-referential
structures:
struct node {
struct node *next;
void *datum;
};
typedef cannot solve this because
typedef struct {
node *next; // error: typedef does not exist yet!
void *datum;
} node;
The struct specifier is what introduces a type; typedef just introduces
the name "node" into the scope which refers to that type.
--
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
[toc] | [prev] | [next] | [standalone]
| From | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-06-06 16:05 +0100 |
| Message-ID | <1v5vI.20225$St1.18675@fx12.ams4> |
| In reply to | #161274 |
On 06/06/2021 15:51, Kaz Kylheku wrote:
> On 2021-06-06, James Harris <james.harris.1@gmail.com> wrote:
>> etc but in all such cases struct A is being used as a type. And there is
>> a more general feature for that in typedef.
>
> typedef is general, but a general what?
>
> It's purely a type aliasing mechanism for giving names to existing
> types. It doesn't define new types.
>
>> 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 essential in the C design for self-referential
> structures:
>
> struct node {
> struct node *next;
> void *datum;
> };
>
> typedef cannot solve this because
>
> typedef struct {
> node *next; // error: typedef does not exist yet!
> void *datum;
> } node;
>
> The struct specifier is what introduces a type; typedef just introduces
> the name "node" into the scope which refers to that type.
It's only essential because C has decided that's how it has to work.
Your example works with C++; how does that manage it?
C could have done it with a forward declaration of 'node', but:
typedef node;
is not valid; you need to give a type, and that type then counts as
either a separate or duplicate struct to the one defined later. Or you
use a tag for that forward, empty struct declaration, so you're back to
square one.
It's just fortuitous that the tag is placed just before {...} instead of
just after, otherwise you'd have the same problem with tags.
A minor tweak of syntax, such as:
typedef newtype = oldtype; // with oldtype name-less
instead of:
typedef oldtype newtype; // with oldtype/newtype wrapped around
// each other for complex types
would have done it.
[toc] | [prev] | [next] | [standalone]
| From | James Kuyper <jameskuyper@alumni.caltech.edu> |
|---|---|
| Date | 2021-06-06 14:20 -0400 |
| Message-ID | <s9j3kk$b23$1@dont-email.me> |
| In reply to | #161260 |
On 6/6/21 8:16 AM, James Harris wrote:
> Does C, as a language, need to allow its structs to have tags?
>
> AIUI a fragment such as "struct A {....};" reserves no storage but
> declares a template which can be used later, e.g. to declare a variable
> as in
>
> struct A var;
>
> to declare a parameter as in
>
> void f(struct A parm) {....}
>
> to effect a cast as in
>
> (struct A *) p
>
> etc but in all such cases struct A is being used as a type. And there is
> a more general feature for that in typedef.
>
> 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?
C++ dropped the requirement for tags, so it's clearly not necessary.
Except when hidden by the use of a typedef, C's rule guarantees that
every specification of a struct type includes the "struct" keyword.
Because of that rule, struct tags have their own separate name space,
which allows you to use the same identifier for a struct type and for a
given object of that type. That's not possible in C++, where they are in
the same name space. Note: a "name space" is a concept that exists in
both of those languages, though it's less important in C++. A "name
space" is not directly related to the C++ namespace keyword.
Strougstrop obviously thought that the C++ rules were an improvement. C
is more constrained than C++ by the need to maintain backwards
compatibility, which would be broken by adoption of the C++ rules.
[toc] | [prev] | [next] | [standalone]
| From | Richard Damon <Richard@Damon-Family.org> |
|---|---|
| Date | 2021-06-06 15:03 -0400 |
| Message-ID | <l_8vI.9103$Vh1.1344@fx21.iad> |
| In reply to | #161260 |
On 6/6/21 8:16 AM, James Harris wrote:
> Does C, as a language, need to allow its structs to have tags?
>
> AIUI a fragment such as "struct A {....};" reserves no storage but
> declares a template which can be used later, e.g. to declare a variable
> as in
>
> struct A var;
>
> to declare a parameter as in
>
> void f(struct A parm) {....}
>
> to effect a cast as in
>
> (struct A *) p
>
> etc but in all such cases struct A is being used as a type. And there is
> a more general feature for that in typedef.
>
> 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 biggest need is for referencing a struct whose definition hasn't
been given, especially as a pointer type.
You can say 'struct A' to reference that type without ever having seen
the actual definition of what that structure looks like.
You can NOT do this with a typedef. You CAN say
typedef struct A Astruct; to make Astruct a typedef for that unknown
struct type, but even that requires the struct tag to be specified, so
it can possible be linked later when the struct is actually defined.
Except by using this sort of tag, there is no way in C to say that a
name is to some type that may be defined later.
I suppose C could be extended to allow a statement like typedef A; to
define that A was a type, that later might get connected to some defined
type. This would allow you to define pointers to that type.
[toc] | [prev] | [next] | [standalone]
| From | James Harris <james.harris.1@gmail.com> |
|---|---|
| Date | 2021-06-07 18:38 +0100 |
| Message-ID | <s9llio$2a4$1@dont-email.me> |
| In reply to | #161280 |
On 06/06/2021 20:03, Richard Damon wrote:
> On 6/6/21 8:16 AM, James Harris wrote:
>> Does C, as a language, need to allow its structs to have tags?
>>
>> AIUI a fragment such as "struct A {....};" reserves no storage but
>> declares a template which can be used later, e.g. to declare a variable
>> as in
>>
>> struct A var;
>>
>> to declare a parameter as in
>>
>> void f(struct A parm) {....}
>>
>> to effect a cast as in
>>
>> (struct A *) p
>>
>> etc but in all such cases struct A is being used as a type. And there is
>> a more general feature for that in typedef.
>>
>> 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 biggest need is for referencing a struct whose definition hasn't
> been given, especially as a pointer type.
>
> You can say 'struct A' to reference that type without ever having seen
> the actual definition of what that structure looks like.
>
> You can NOT do this with a typedef. You CAN say
> typedef struct A Astruct; to make Astruct a typedef for that unknown
> struct type, but even that requires the struct tag to be specified, so
> it can possible be linked later when the struct is actually defined.
>
> Except by using this sort of tag, there is no way in C to say that a
> name is to some type that may be defined later.
>
> I suppose C could be extended to allow a statement like typedef A; to
> define that A was a type, that later might get connected to some defined
> type. This would allow you to define pointers to that type.
If I understand you then yes, but that's a design choice.
I wonder if a language could, instead, allow statements to refer to
types which come anywhere in the same scope, i.e. allow /implicit/
forward references?
For example, the self referential:
typedef A = struct {
A *next;
int data;
}
or the indirectly referential:
typedef P = struct {
Q *firstchild;
int data;
}
typedef Q = struct {
P *parent;
float data;
}
The hardest part of that for a compiler to parse would be
Q *firstchild;
because no mention of Q would have even been seen by the time the
compiler got to that line.
Could an implicit forward reference such as the above be parsed?
Perhaps. As long as the compiler skipping that line and coming back to
it later did not prevent recognition of later types then it looks as
though the above would be parseable without requiring a programmer to
code an explicit forward reference. If the line could be a declaration
then proper recognition of it could be carried out in a second pass.
If that would remove the need for a struct tag and also remove the
slightly ugly and annoying requirement of having to include explicit
forward references then it would be a small but welcome step forward, IMO.
--
James Harris
[toc] | [prev] | [next] | [standalone]
| From | Joe Pfeiffer <pfeiffer@cs.nmsu.edu> |
|---|---|
| Date | 2021-06-08 08:06 -0600 |
| Message-ID | <1bzgw0tpqu.fsf@pfeifferfamily.net> |
| In reply to | #161260 |
James Harris <james.harris.1@gmail.com> writes: > Does C, as a language, need to allow its structs to have tags? <snip example> > etc but in all such cases struct A is being used as a type. And there > is a more general feature for that in typedef. > > 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? structs (with tags) predate typedefs. I expect you're right that they are no longer necessary, but they cause no harm that I know of and removing them now would break lots of code written by people who don't like typedefs.
[toc] | [prev] | [next] | [standalone]
| From | Malcolm McLean <malcolm.arthur.mclean@gmail.com> |
|---|---|
| Date | 2021-06-08 07:45 -0700 |
| Message-ID | <45b9fa5f-d715-451c-b236-1a5d236614f7n@googlegroups.com> |
| In reply to | #161324 |
On Tuesday, 8 June 2021 at 15:06:45 UTC+1, Joe Pfeiffer wrote: > James Harris <james.h...@gmail.com> writes: > > > Does C, as a language, need to allow its structs to have tags? > <snip example> > > etc but in all such cases struct A is being used as a type. And there > > is a more general feature for that in typedef. > > > > 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? > structs (with tags) predate typedefs. I expect you're right that they > are no longer necessary, but they cause no harm that I know of and > removing them now would break lots of code written by people who don't > like typedefs. > You need a tag when a struct contains a pointer to its own kind. Which is quite common for graph nodes. In other situations, you have the option - either typedef the struct or use the "struct mytag" syntax. This isn't really desireable. Programming languages shouldn't provide two ways to do essentially the same thing. It just leads to gratuitious inconsistencies, sometimes even incompatibilities.
[toc] | [prev] | [next] | [standalone]
| From | Guillaume <message@bottle.org> |
|---|---|
| Date | 2021-06-08 17:09 +0200 |
| Message-ID | <s9o16i$133n$1@gioia.aioe.org> |
| In reply to | #161325 |
Le 08/06/2021 à 16:45, Malcolm McLean a écrit :
> On Tuesday, 8 June 2021 at 15:06:45 UTC+1, Joe Pfeiffer wrote:
> You need a tag when a struct contains a pointer to its own kind. Which is quite
> common for graph nodes.
Yep. This is akin to a forward type definition.
> In other situations, you have the option - either typedef the struct or use the
> "struct mytag" syntax. This isn't really desireable. Programming languages
> shouldn't provide two ways to do essentially the same thing. It just
> leads to gratuitious inconsistencies, sometimes even incompatibilities.
I think this just has historical reasons for C, but it's kind of weird
indeed. Especially since, not only does it give two ways of defining and
using struct types, but it also implies separate namespaces. (structs
have their own namespace, as well as enums, unions, then typedefs, ...)
Now as you mentioned above, to get rid of that, C would need to have
another way of declaring a forward type definition. You can define a
forward typedef for structs actually, but it still requires a struct
tag, so that doesn't solve much.
If I'm not mistaken, you can do the following:
typedef struct foo foo_t;
struct foo { ... foo_t *next; };
which would be similar to:
typedef struct foo { ... struct foo *next; } foo_t;
In both cases, you still need a struct tag.
[toc] | [prev] | [next] | [standalone]
| From | Kaz Kylheku <563-365-8930@kylheku.com> |
|---|---|
| Date | 2021-06-08 16:00 +0000 |
| Message-ID | <20210608083808.0@kylheku.com> |
| In reply to | #161326 |
On 2021-06-08, Guillaume <message@bottle.org> wrote:
> Le 08/06/2021 à 16:45, Malcolm McLean a écrit :
>> On Tuesday, 8 June 2021 at 15:06:45 UTC+1, Joe Pfeiffer wrote:
>> You need a tag when a struct contains a pointer to its own kind. Which is quite
>> common for graph nodes.
>
> Yep. This is akin to a forward type definition.
>
>> In other situations, you have the option - either typedef the struct or use the
>> "struct mytag" syntax. This isn't really desireable. Programming languages
>> shouldn't provide two ways to do essentially the same thing. It just
>> leads to gratuitious inconsistencies, sometimes even incompatibilities.
>
> I think this just has historical reasons for C, but it's kind of weird
> indeed. Especially since, not only does it give two ways of defining and
> using struct types, but it also implies separate namespaces. (structs
> have their own namespace, as well as enums, unions, then typedefs, ...)
It may feel "weird", but the underlying compile-time object model is
quite very clear.
There is a single namespace for declared identifiers in which typedef
names live along with functions and variables.
There is a separate tag namespace which holds only struct/union/enum
types. This has different, useful properties from the regular namespace.
Only typedef links aliases to types into the regular namespace, nothing else.
Even if you have it so that structs are entered into the regular
namespace automatically without typedef, you still needs structs to have
a name property.
When the compiler is looking at some type object, it needs to be able
to ask what its name is.
If we have ethis situation:
struct foo { int x; };
// foo is now a type, without typedef
typedef foo bar;
// bar is now an alias for foo
When bar is used for defining and declaring, the compiler needs
to know that the underlying type that bar refers to is actually
a structure with name foo: a struct foo.
E.g. for diagnostics. If you reference "a.z" where a has been declared
as a bar, you want something like:
parser.c:13: bar has no member z.
foo.h:5: bar is a typedef for foo, defined here.
If a were declared as foo, that might be:
parser.c:13: foo has no member z.
foo.h:5: foo is defined here.
The idea of a tag in the model itself will not go away so easily;
C just lacks the syntactic sugar to conceal it. The model is explicit
to the programmer. Structures have names, and you have to wire those
names into the regular namespace yourself with typedef, if you
want them there.
--
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
[toc] | [prev] | [next] | [standalone]
| From | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-06-08 17:23 +0100 |
| Message-ID | <PPMvI.17006$js1.13633@fx11.ams4> |
| In reply to | #161328 |
On 08/06/2021 17:00, Kaz Kylheku wrote:
> On 2021-06-08, Guillaume <message@bottle.org> wrote:
>> Le 08/06/2021 à 16:45, Malcolm McLean a écrit :
>>> On Tuesday, 8 June 2021 at 15:06:45 UTC+1, Joe Pfeiffer wrote:
>>> You need a tag when a struct contains a pointer to its own kind. Which is quite
>>> common for graph nodes.
>>
>> Yep. This is akin to a forward type definition.
>>
>>> In other situations, you have the option - either typedef the struct or use the
>>> "struct mytag" syntax. This isn't really desireable. Programming languages
>>> shouldn't provide two ways to do essentially the same thing. It just
>>> leads to gratuitious inconsistencies, sometimes even incompatibilities.
>>
>> I think this just has historical reasons for C, but it's kind of weird
>> indeed. Especially since, not only does it give two ways of defining and
>> using struct types, but it also implies separate namespaces. (structs
>> have their own namespace, as well as enums, unions, then typedefs, ...)
>
> It may feel "weird", but the underlying compile-time object model is
> quite very clear.
>
> There is a single namespace for declared identifiers in which typedef
> names live along with functions and variables.
>
> There is a separate tag namespace which holds only struct/union/enum
> types. This has different, useful properties from the regular namespace.
>
> Only typedef links aliases to types into the regular namespace, nothing else.
>
> Even if you have it so that structs are entered into the regular
> namespace automatically without typedef, you still needs structs to have
> a name property.
>
> When the compiler is looking at some type object, it needs to be able
> to ask what its name is.
>
> If we have ethis situation:
>
> struct foo { int x; };
> // foo is now a type, without typedef
> typedef foo bar;
> // bar is now an alias for foo
>
> When bar is used for defining and declaring, the compiler needs
> to know that the underlying type that bar refers to is actually
> a structure with name foo: a struct foo.
>
> E.g. for diagnostics. If you reference "a.z" where a has been declared
> as a bar, you want something like:
>
> parser.c:13: bar has no member z.
> foo.h:5: bar is a typedef for foo, defined here.
>
> If a were declared as foo, that might be:
>
> parser.c:13: foo has no member z.
> foo.h:5: foo is defined here.
>
> The idea of a tag in the model itself will not go away so easily;
> C just lacks the syntactic sugar to conceal it. The model is explicit
> to the programmer. Structures have names, and you have to wire those
> names into the regular namespace yourself with typedef, if you
> want them there.
It sounds as though you are trying to retrospectively justify C's tag
names, simply because the language has them, and you don't want to admit
that they don't belong.
The fact is that if C had had typedef right from the start, tags would
never have existed, and nobody would have thought it was a good idea to
add them.
You /don't/ need a separate tag namespace where even anonymous structs
live. (If you did, pointers and arrays and function pointers would live
there too.)
If an implementation requires that anonymous structs 'belong' to a
symbol table entry, to match named ones, then an anonymous /typedef/,
not user-accessible, can be created. It doesn't need a separate name-space.
The struct will additionally belong to the collection of user-specified
types, which includes pointers, arrays and function pointers.
[toc] | [prev] | [next] | [standalone]
| From | Kaz Kylheku <563-365-8930@kylheku.com> |
|---|---|
| Date | 2021-06-08 18:59 +0000 |
| Message-ID | <20210608111514.133@kylheku.com> |
| In reply to | #161330 |
On 2021-06-08, Bart <bc@freeuk.com> wrote:
> On 08/06/2021 17:00, Kaz Kylheku wrote:
>> On 2021-06-08, Guillaume <message@bottle.org> wrote:
>>> Le 08/06/2021 à 16:45, Malcolm McLean a écrit :
>>>> On Tuesday, 8 June 2021 at 15:06:45 UTC+1, Joe Pfeiffer wrote:
>>>> You need a tag when a struct contains a pointer to its own kind. Which is quite
>>>> common for graph nodes.
>>>
>>> Yep. This is akin to a forward type definition.
>>>
>>>> In other situations, you have the option - either typedef the struct or use the
>>>> "struct mytag" syntax. This isn't really desireable. Programming languages
>>>> shouldn't provide two ways to do essentially the same thing. It just
>>>> leads to gratuitious inconsistencies, sometimes even incompatibilities.
>>>
>>> I think this just has historical reasons for C, but it's kind of weird
>>> indeed. Especially since, not only does it give two ways of defining and
>>> using struct types, but it also implies separate namespaces. (structs
>>> have their own namespace, as well as enums, unions, then typedefs, ...)
>>
>> It may feel "weird", but the underlying compile-time object model is
>> quite very clear.
>>
>> There is a single namespace for declared identifiers in which typedef
>> names live along with functions and variables.
>>
>> There is a separate tag namespace which holds only struct/union/enum
>> types. This has different, useful properties from the regular namespace.
>>
>> Only typedef links aliases to types into the regular namespace, nothing else.
>>
>> Even if you have it so that structs are entered into the regular
>> namespace automatically without typedef, you still needs structs to have
>> a name property.
>>
>> When the compiler is looking at some type object, it needs to be able
>> to ask what its name is.
>>
>> If we have ethis situation:
>>
>> struct foo { int x; };
>> // foo is now a type, without typedef
>> typedef foo bar;
>> // bar is now an alias for foo
>>
>> When bar is used for defining and declaring, the compiler needs
>> to know that the underlying type that bar refers to is actually
>> a structure with name foo: a struct foo.
>>
>> E.g. for diagnostics. If you reference "a.z" where a has been declared
>> as a bar, you want something like:
>>
>> parser.c:13: bar has no member z.
>> foo.h:5: bar is a typedef for foo, defined here.
>>
>> If a were declared as foo, that might be:
>>
>> parser.c:13: foo has no member z.
>> foo.h:5: foo is defined here.
>>
>> The idea of a tag in the model itself will not go away so easily;
>> C just lacks the syntactic sugar to conceal it. The model is explicit
>> to the programmer. Structures have names, and you have to wire those
>> names into the regular namespace yourself with typedef, if you
>> want them there.
>
> It sounds as though you are trying to retrospectively justify C's tag
> names, simply because the language has them, and you don't want to admit
> that they don't belong.
Indeed, if sounds that way if you're only lightly skimming through
my paragraphs in order to confirm that belief.
Though I didn't say that here, do I like languages with multiple
namespaces. Not necessarily the way C does it though. I'd be quite okay
with types, variables and functions all being in separate namespaces.
However, I appreciate the point that types don't have to be split up
further into tags and typedefs.
> The fact is that if C had had typedef right from the start, tags would
> never have existed, and nobody would have thought it was a good idea to
> add them.
My point, if you read more carefully, is that structure types would
still internally hold a reference to a symbol which gives their name,
but that this would not be entered into a separate tag name space that
is visible in the program semantics.
With that, the compiler would be able to dereference a typedef name to a
structure type, and then obtain that type's name in order to know the
original name under which the structure had been introduced, which can
be used as a key into the typedef space again.
That could be useful for diagnostics.
At no point is a tag namespace involved in my description of this.
> If an implementation requires that anonymous structs 'belong' to a
> symbol table entry, to match named ones, then an anonymous /typedef/,
> not user-accessible, can be created. It doesn't need a separate name-space.
That gensym could still be attached to the structure type itself, not
only entered into the type namespace.
I'm mostly here to discuss C. There are a lot of would-be, could-be
debates exactly like this in the comp.std.c newsgroup. I've never
participated there, other than by some cross-posting activity.
--
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
[toc] | [prev] | [next] | [standalone]
| From | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-06-09 00:22 +0100 |
| Message-ID | <TYSvI.973672$VS.147248@fx40.ams4> |
| In reply to | #161332 |
On 08/06/2021 19:59, Kaz Kylheku wrote:
> On 2021-06-08, Bart <bc@freeuk.com> wrote:
>> It sounds as though you are trying to retrospectively justify C's tag
>> names, simply because the language has them, and you don't want to admit
>> that they don't belong.
>
> Indeed, if sounds that way if you're only lightly skimming through
> my paragraphs in order to confirm that belief.
>
> Though I didn't say that here, [I do like?] languages with multiple
> namespaces. Not necessarily the way C does it though. I'd be quite okay
> with types, variables and functions all being in separate namespaces.
That will make some dynamic languages tricky. You write:
A = B
B exists as a type, function and variable; which one is assigned here?
(Probably not a problem in Python however, where everything can be a
considered a variable.)
> However, I appreciate the point that types don't have to be split up
> further into tags and typedefs.
>
>> The fact is that if C had had typedef right from the start, tags would
>> never have existed, and nobody would have thought it was a good idea to
>> add them.
>
> My point, if you read more carefully, is that structure types would
> still internally hold a reference to a symbol which gives their name,
> but that this would not be entered into a separate tag name space that
> is visible in the program semantics.
>
> With that, the compiler would be able to dereference a typedef name to a
> structure type, and then obtain that type's name in order to know the
> original name under which the structure had been introduced, which can
> be used as a key into the typedef space again.
These are examples of user-speciefied-types in C, built using primitives:
int**
float[10]
int(*)(void) (Some sort of function pointer I hope)
struct{int x,y;}
All are anonymous. All can be assigned a typedef to represent each type.
But each exists in a collection of such types within the implementation.
The only difference between struct and the rest, is two different
instances of the same type-spec (say int** in one place and int** in
another) are considered compatible. Less need to tie them together with
a typedef.
But two lots of struct{int x,y;} are considered separate types. Here you
/need/ a typedef to allow multiple instances of that same type. [My
languages don't allow anonymous struct types; they have to be formally
named.]
Apart from a typedef, there's no need for any internal /named/ identifer
here.
[toc] | [prev] | [next] | [standalone]
| From | Keith Thompson <Keith.S.Thompson+u@gmail.com> |
|---|---|
| Date | 2021-06-08 16:53 -0700 |
| Message-ID | <87r1hboquj.fsf@nosuchdomain.example.com> |
| In reply to | #161334 |
Bart <bc@freeuk.com> writes:
[...]
> These are examples of user-speciefied-types in C, built using primitives:
>
> int**
>
> float[10]
>
> int(*)(void) (Some sort of function pointer I hope)
Yes.
> struct{int x,y;}
>
> All are anonymous. All can be assigned a typedef to represent each
> type. But each exists in a collection of such types within the
> implementation.
I wouldn't necessarily call them "anonymous". "Anonymous" usually means
"not having a name", and each of those is syntactically a *type-name*.
> The only difference between struct and the rest, is two different
> instances of the same type-spec (say int** in one place and int** in
> another) are considered compatible. Less need to tie them together
> with a typedef.
>
> But two lots of struct{int x,y;} are considered separate types. Here
> you /need/ a typedef to allow multiple instances of that same
> type. [My languages don't allow anonymous struct types; they have to
> be formally named.]
No, you don't *need* a typedef. You can use a tag instead.
(Yes, you can use a typedef if you don't like tags.)
> Apart from a typedef, there's no need for any internal /named/
> identifer here.
--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Working, but not speaking, for Philips Healthcare
void Void(void) { Void(); } /* The recursive call of the void */
[toc] | [prev] | [next] | [standalone]
| From | James Kuyper <jameskuyper@alumni.caltech.edu> |
|---|---|
| Date | 2021-06-09 11:40 -0400 |
| Message-ID | <s9qne6$4df$1@dont-email.me> |
| In reply to | #161326 |
On 6/8/21 11:09 AM, Guillaume wrote: ... > I think this just has historical reasons for C, but it's kind of weird > indeed. Especially since, not only does it give two ways of defining and > using struct types, but it also implies separate namespaces. (structs > have their own namespace, as well as enums, unions, then typedefs, ...) Almost: struct, union, and enumeration tags all share a single name space. Typedefs shares the "ordinary identifier" name space with the names of objects, functions, macro names and macro parameters (6.2.3).
[toc] | [prev] | [next] | [standalone]
| From | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-06-09 17:36 +0100 |
| Message-ID | <J66wI.2$73h1.0@fx10.ams4> |
| In reply to | #161338 |
On 09/06/2021 16:40, James Kuyper wrote: > On 6/8/21 11:09 AM, Guillaume wrote: > ... >> I think this just has historical reasons for C, but it's kind of weird >> indeed. Especially since, not only does it give two ways of defining and >> using struct types, but it also implies separate namespaces. (structs >> have their own namespace, as well as enums, unions, then typedefs, ...) > > Almost: struct, union, and enumeration tags all share a single name > space. Typedefs shares the "ordinary identifier" name space with the > names of objects, functions, macro names and macro parameters (6.2.3). Labels bizarrely have their own name space too.
[toc] | [prev] | [next] | [standalone]
| From | Kaz Kylheku <563-365-8930@kylheku.com> |
|---|---|
| Date | 2021-06-09 17:48 +0000 |
| Message-ID | <20210609104104.187@kylheku.com> |
| In reply to | #161340 |
On 2021-06-09, Bart <bc@freeuk.com> wrote: > On 09/06/2021 16:40, James Kuyper wrote: >> On 6/8/21 11:09 AM, Guillaume wrote: >> ... >>> I think this just has historical reasons for C, but it's kind of weird >>> indeed. Especially since, not only does it give two ways of defining and >>> using struct types, but it also implies separate namespaces. (structs >>> have their own namespace, as well as enums, unions, then typedefs, ...) >> >> Almost: struct, union, and enumeration tags all share a single name >> space. Typedefs shares the "ordinary identifier" name space with the >> names of objects, functions, macro names and macro parameters (6.2.3). > > Labels bizarrely have their own name space too. It's the same in Common Lisp. > (block foo (let ((foo 3)) (return-from foo foo))) 3 The block named foo isn't shadowed by the variable foo. Why would it be; it's a completely different kind of thing. In C, labels are visible function wide, whereas lexical scope follows blocks. So that alone calls for a separate namespace. A primary C expression would never refer to a goto label; there is no such syntax. Labels are referenced only by goto, which requires a label name argument; so if labels intefered with lexical variable references, it would only be a source of gratuitous syntactic clashes with no underlying semantic clashes. But ... I'm dying to hear how it's all done nicely in a single namespace in some shitty language that nobody uses. -- TXR Programming Language: http://nongnu.org/txr Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
[toc] | [prev] | [next] | [standalone]
| From | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-06-09 20:19 +0100 |
| Message-ID | <hv8wI.5322$rTd1.3536@fx15.ams4> |
| In reply to | #161341 |
On 09/06/2021 18:48, Kaz Kylheku wrote:
> On 2021-06-09, Bart <bc@freeuk.com> wrote:
>> On 09/06/2021 16:40, James Kuyper wrote:
>>> On 6/8/21 11:09 AM, Guillaume wrote:
>> Labels bizarrely have their own name space too.
>
> It's the same in Common Lisp.
>
> > (block foo (let ((foo 3)) (return-from foo foo)))
> 3
>
> The block named foo isn't shadowed by the variable foo. Why would it be;
> it's a completely different kind of thing.
>
> In C, labels are visible function wide, whereas lexical scope follows
> blocks. So that alone calls for a separate namespace.
Nonsense. One of my languages uses some 20 categories of identifiers;
should each exist in its private namespace?
>
> A primary C expression would never refer to a goto label; there is no
> such syntax. Labels are referenced only by goto, which requires a label
> name argument; so if labels intefered with lexical variable references,
> it would only be a source of gratuitous syntactic clashes with no
> underlying semantic clashes.
Nonsense. That would be remarkably short-sighted. In GNU C, you can have
expressions like this:
void* p = cond ? &&L1 : &&L2;
where L1 and L2 are labels. But because they exist in a private
namespace, you need to use && instead of &, for the highly dubious
benefit of being able to to have both a label and a function, variable
etc with the same name:
void* L1 = &&L1;
Brilliant; no room for confusion there at all!
C already detects semantic errors like this:
typedef int T;
int a = T;
with it requiring that variables and usertypes are in separate
namespaces. It would be no different with labels.
> But ... I'm dying to hear how it's all done nicely in a single namespace
> in some shitty language that nobody uses.
So you're sticking up for some weird quirk of C that probably 99% of C
programmers don't know about, which only exists because some /shitty/
early compiler couldn't figure out how to implement proper symbol
tables, because.....?
It's somewhat worrying that people make so much of accidents of design.
I mean, it's not as though the designers as C specifically set out to
have a separate name space for labels.
And it they hadn't had that, I doubt you would be here know lamenting
the lack of that feature! It wouldn't have occurred to anyone to have
it. It is completely pointless.
[toc] | [prev] | [next] | [standalone]
| From | Kaz Kylheku <563-365-8930@kylheku.com> |
|---|---|
| Date | 2021-06-09 21:28 +0000 |
| Message-ID | <20210609135620.66@kylheku.com> |
| In reply to | #161342 |
On 2021-06-09, Bart <bc@freeuk.com> wrote:
> On 09/06/2021 18:48, Kaz Kylheku wrote:
>> On 2021-06-09, Bart <bc@freeuk.com> wrote:
>>> On 09/06/2021 16:40, James Kuyper wrote:
>>>> On 6/8/21 11:09 AM, Guillaume wrote:
>
>>> Labels bizarrely have their own name space too.
>>
>> It's the same in Common Lisp.
>>
>> > (block foo (let ((foo 3)) (return-from foo foo)))
>> 3
>>
>> The block named foo isn't shadowed by the variable foo. Why would it be;
>> it's a completely different kind of thing.
>>
>> In C, labels are visible function wide, whereas lexical scope follows
>> blocks. So that alone calls for a separate namespace.
>
> Nonsense. One of my languages uses some 20 categories of identifiers;
> should each exist in its private namespace?
Possibly, yes. Twenty categories of identifiers might legitimately
belong to a single namespace, or two two namespaces, or three, ...
anywhere up to twenty namespaces.
Quite likly, some intermediate number may be reasonable, if the
categories can be grouped into related sub-categories.
Multiple namespaces is nice.
Common Lisp
(defmethod foo ((list list))
(block list
(return-from list (list list)))
Here we have a method parameter list, specialized to class type list:
an object of list type called list. The expression (list list) calls the
list function, passing it the list, to produce a list of it.
This is returned from the block named list.
Perfectly readable to me, without so much as a pause.
>> A primary C expression would never refer to a goto label; there is no
>> such syntax. Labels are referenced only by goto, which requires a label
>> name argument; so if labels intefered with lexical variable references,
>> it would only be a source of gratuitous syntactic clashes with no
>> underlying semantic clashes.
>
> Nonsense. That would be remarkably short-sighted. In GNU C, you can have
> expressions like this:
>
> void* p = cond ? &&L1 : &&L2;
>
> where L1 and L2 are labels. But because they exist in a private
> namespace, you need to use && instead of &, for the highly dubious
> benefit of being able to to have both a label and a function, variable
> etc with the same name:
>
> void* L1 = &&L1;
That's actually a good name for the variable, if it always points to L1.
If L1 is reassigned to point to L2, then L1 is not a good name on that
account.
> Brilliant; no room for confusion there at all!
In the same namespace, we can have confusion via shadowing:
L1:
// ...
{
int L1;
}
There is no design choice in which some people can't write something
which later confuses someone (possibly themselves).
> C already detects semantic errors like this:
>
> typedef int T;
> int a = T;
That's pretty dumb; typedefs should have their own namespace.
I would not make a career of ranting about this on Usenet, though.
The thing I value most in C is staying the same, and being widely
portable. No matter how much I believe in some improvement, I would
rather it not be made. If it were made, I wouldn't use it.
>> But ... I'm dying to hear how it's all done nicely in a single namespace
>> in some shitty language that nobody uses.
>
> So you're sticking up for some weird quirk of C that probably 99% of C
> programmers don't know about, which only exists because some /shitty/
> early compiler couldn't figure out how to implement proper symbol
> tables, because.....?
I believe that labels in their own namespace is a good design.
Very well thought out.
> And it they hadn't had that, I doubt you would be here know lamenting
> the lack of that feature!
Of course, that would be your prerogative.
--
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
[toc] | [prev] | [next] | [standalone]
| From | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-06-09 23:47 +0100 |
| Message-ID | <MxbwI.2275$yVI1.1795@fx07.ams4> |
| In reply to | #161343 |
On 09/06/2021 22:28, Kaz Kylheku wrote:
> On 2021-06-09, Bart <bc@freeuk.com> wrote:
> Possibly, yes. Twenty categories of identifiers might legitimately
> belong to a single namespace, or two two namespaces, or three, ...
> anywhere up to twenty namespaces.
All that can occur as top-level names in an expression (not following
"." or other special syntax) are in one namespace, which is most of them.
Each also belongs inside a real namespace, one created by a module,
record or function. There is no need for artificial namespaces just so I
can use A, A and A for different purposes inside the same scope.
I would call that an anti-feature.
> Quite likly, some intermediate number may be reasonable, if the
> categories can be grouped into related sub-categories.
>
> Multiple namespaces is nice.
>
> Common Lisp
>
> (defmethod foo ((list list))
> (block list
> (return-from list (list list)))
The 'spam spam spam and spam' school of coding.
> Here we have a method parameter list, specialized to class type list:
> an object of list type called list. The expression (list list)
(There are two (list list)s in the example.)
> calls the
> list function, passing it the list, to produce a list of it.
> This is returned from the block named list.
>
> Perfectly readable to me, without so much as a pause.
To /you/. I expect your example could also be tweaked to be:
(List lIst ((list list))
(liSt list
(lisT list (list list)))
To do away altogether with that pesky problem of needing to think up
distinct identifiers for your 100,000-line application.
[toc] | [prev] | [next] | [standalone]
Page 3 of 20 — ← Prev page 1 2 [3] 4 5 … 20 Next page →
Back to top | Article view | comp.lang.c
csiph-web