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 17 of 20 — ← Prev page 1 … 15 16 [17] 18 19 20 Next page →
| From | Keith Thompson <Keith.S.Thompson+u@gmail.com> |
|---|---|
| Date | 2021-07-30 21:14 -0700 |
| Message-ID | <87sfzvazlp.fsf@nosuchdomain.example.com> |
| In reply to | #162156 |
Bart <bc@freeuk.com> writes:
> On 31/07/2021 00:36, Keith Thompson wrote:
>> Bart <bc@freeuk.com> writes:
>>> On 30/07/2021 23:34, Keith Thompson wrote:
>>>> Bart <bc@freeuk.com> writes:
>>>> [...]
>>>>> For the record, my current 'gcc' that I use on plain Windows is this
>>>>> product:
>>>>>
>>>>> https://jmeubank.github.io/tdm-gcc/download/
>>>> https://jmeubank.github.io/tdm-gcc/about/ :
>>>> TDM-GCC is a compiler suite for Windows.
>>>> It combines the most recent stable release of the GCC compiler, a
>>>> few patches for Windows-friendliness, and the free and open-source
>>>> MinGW.org or MinGW-w64 runtime APIs, to create a more lightweight
>>>> open-source alternative to Microsoft’s compiler and platform SDK.
>>>> TDM-GCC is not a compiler.
>>>> TDM-GCC is not gcc.
>>>> TDM-GCC is not produced or maintained by the gcc project.
>>>> TDM-GCC is a software package that combines a compiler (gcc) and
>>>> other
>>>> components (MinGW runtime libraries, probably other things) into a C
>>>> implementation.
>>>> Other software packages might combine the gcc compiler with other
>>>> runtime library implementations. For example, there are packages that
>>>> combine the gcc compiler with Microsoft's runtime library.
>>>> If any of the above is inaccurate, Bart, I encourage you to correct
>>>> me.
>>>> You seem to imply that TDM-GCC gives you an implementation that by
>>>> default uses the obsolete MSVCRT.DLL, and therefore does not support
>>>> "%zu". I find that at least mildly surprising. I might install it
>>>> myself over the weekend to see what's going on.
>>>
>>> C:\c>type c.c
>>> #include <stdio.h>
>>> int main(void) {
>>> printf("Hello, World! %zu\n",sizeof(void*));
>>> }
>>>
>>> C:\c>gcc --version
>>> gcc (tdm64-1) 9.2.0
>>> <snip>
>>>
>>> C:\c>gcc c.c
>>>
>>> C:\c>a
>>> Hello, World! zu
>>>
>>> C:\c>gcc c.c -lucrt
>>>
>>> C:\c>a
>>> Hello, World! 8
>>>
>>> C:\c>gcc c.c \tdm\x86_64-w64-mingw32\lib\libmsvcrt.a
>>>
>>> C:\c>a
>>> Hello, World! zu
>>>
>>> C:\c>
>> OK, that demonstrates that TDM-GCC by default does not support
>> "%zu".
>> It doesn't directly demonstrate that it uses MSVCRT.DLL, but that's
>> probably the most likely explanation.
>
> A program compiled with or without -lucrt will import msvcrt.dll (from
> looking inside the exe file). But it only imports vfprintf() that is
> relevant.
>
> (gcc's stdio.h defines printf in terms of __mingw_vfprintf, so will
> not import printf directly.)
>
>> Did you want to reply to anything else I wrote? Should I assume
>> that
>> you agree with the points I made above? (I would greatly appreciate a
>> direct reply to that last question.)
>
> Those seem to be your conclusions (not sure how you got those from
> that About page). But I can't see the point of arguing about this.
I believe there is a point.
You very commonly gloss over the distinction between an *implementation*
and a *compiler*. An implementation consists of several components; the
compiler is just one of them.
In this thread, you've talked about what "gcc" supports, only later
mentioning that you're using "TDM-GCC".
I would have liked an explicit acknowledgement from you that you
understand the difference.
> That page is right: tdm-gcc is unlike other compilers, but I would
> extend that to say that gcc (whatever it is) is quite unlike other
> whatevers of its type.
TDM-GCC is not a compiler. It's an implementation.
gcc *is* a compiler. It can be part of an implementation.
Do you understand that? Do you disagree? Are you being deliberately
evasive?
> Step away from the crazy world of the Unix (etc) ecosystem, and my
> experience of compilers is rather different.
I'm sure it is. For one thing, implementations targeted for Windows
seem to be more commonly distributed as a single installable package
that includes the various components (compiler, library, linker), while
implementations targeted for Unix-like systems more typically do not
(for example I can install gcc and clang as separate packages, and each
of them will work with glibc, which is a separate component).
And I suppose I should mention that the "gcc" command, typically
/usr/bin/gcc on Linux-based systems, is a driver program that invokes
several other programs (for example front end "cc1", assembler "as"
linker "ld"). That driver program is provided as part of the "gcc"
package, and can for example invoke a different linker or tell the
linker to use a different library as needed.
BTW, I'm not arguing that either approach is better.
> (I used an analogy once of buying a car. For your money, you expect it
> to come with the necessary features such as an engine, and 4 wheels.
> Everthing needed to drive from A to B. Just don't buy a car from the
> people who wrote gcc...)
Continuing the analogy, of course you wouldn't buy a car from the people
who wrote gcc. They don't sell cars. They sell engines.
That's why *you* went to a car dealership to get TDM-GCC rather than to
an engine manufacturer to get gcc.
If I want a usable C implementation on Ubuntu, for example, I can
install the "gcc" package, which will automatically install several
other packages that it depends on, including libc6 and binutils (the
latter includes the linker). (There are also meta-packages that install
a more general development environment.)
If I want a usable C implementation on Windows (not using Cygwin or
something similar), I can install TDM-GCC, which includes gcc *and*
other components that make up a working C implementation. Or I can get
Visual Studio from Microsoft.
My hope was that, if you acknowledged the simple fact that a compiler is
*part* of an implementation, and that gcc is just a compiler, we could
avoid wasting time in the future.
--
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 | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-07-31 11:27 +0100 |
| Message-ID | <se38j2$ran$1@dont-email.me> |
| In reply to | #162153 |
On 31/07/2021 00:36, Keith Thompson wrote:
> Bart <bc@freeuk.com> writes:
>> On 30/07/2021 23:34, Keith Thompson wrote:
>>> Bart <bc@freeuk.com> writes:
>>> [...]
>>>> For the record, my current 'gcc' that I use on plain Windows is this
>>>> product:
>>>>
>>>> https://jmeubank.github.io/tdm-gcc/download/
>>> https://jmeubank.github.io/tdm-gcc/about/ :
>>> TDM-GCC is a compiler suite for Windows.
>>> It combines the most recent stable release of the GCC compiler,
>>> a
>>> few patches for Windows-friendliness, and the free and open-source
>>> MinGW.org or MinGW-w64 runtime APIs, to create a more lightweight
>>> open-source alternative to Microsoft’s compiler and platform SDK.
>>> TDM-GCC is not a compiler.
>>> TDM-GCC is not gcc.
>>> TDM-GCC is not produced or maintained by the gcc project.
>>> TDM-GCC is a software package that combines a compiler (gcc) and
>>> other
>>> components (MinGW runtime libraries, probably other things) into a C
>>> implementation.
>>> Other software packages might combine the gcc compiler with other
>>> runtime library implementations. For example, there are packages that
>>> combine the gcc compiler with Microsoft's runtime library.
>>> If any of the above is inaccurate, Bart, I encourage you to correct
>>> me.
>>> You seem to imply that TDM-GCC gives you an implementation that by
>>> default uses the obsolete MSVCRT.DLL, and therefore does not support
>>> "%zu". I find that at least mildly surprising. I might install it
>>> myself over the weekend to see what's going on.
>>
>> C:\c>type c.c
>> #include <stdio.h>
>> int main(void) {
>> printf("Hello, World! %zu\n",sizeof(void*));
>> }
>>
>> C:\c>gcc --version
>> gcc (tdm64-1) 9.2.0
>> <snip>
>>
>> C:\c>gcc c.c
>>
>> C:\c>a
>> Hello, World! zu
>>
>> C:\c>gcc c.c -lucrt
>>
>> C:\c>a
>> Hello, World! 8
>>
>> C:\c>gcc c.c \tdm\x86_64-w64-mingw32\lib\libmsvcrt.a
>>
>> C:\c>a
>> Hello, World! zu
>>
>> C:\c>
>
> OK, that demonstrates that TDM-GCC by default does not support "%zu".
> It doesn't directly demonstrate that it uses MSVCRT.DLL, but that's
> probably the most likely explanation.
These are the parameters passed to ld.exe when I run 'gcc hello.c':
1:
c:/tdm/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
2: -plugin
3: c:/tdm/bin/../libexec/gcc/x86_64-w64-mingw32/9.2.0/liblto_plugin-0.dll
4:
-plugin-opt=c:/tdm/bin/../libexec/gcc/x86_64-w64-mingw32/9.2.0/lto-wrapper.exe
5:
-plugin-opt=-fresolution=C:\Users\DESKTO~1\AppData\Local\Temp\ccaMoeZ1.res
6: -plugin-opt=-pass-through=-lmingw32
7: -plugin-opt=-pass-through=-lgcc
8: -plugin-opt=-pass-through=-lmoldname
9: -plugin-opt=-pass-through=-lmingwex
10: -plugin-opt=-pass-through=-lmsvcrt
11: -plugin-opt=-pass-through=-lpthread
12: -plugin-opt=-pass-through=-ladvapi32
13: -plugin-opt=-pass-through=-lshell32
14: -plugin-opt=-pass-through=-luser32
15: -plugin-opt=-pass-through=-lkernel32
16: -plugin-opt=-pass-through=-lmingw32
17: -plugin-opt=-pass-through=-lgcc
18: -plugin-opt=-pass-through=-lmoldname
19: -plugin-opt=-pass-through=-lmingwex
20: -plugin-opt=-pass-through=-lmsvcrt
21: -m
22: i386pep
23: --exclude-libs=libpthread.a
24: -Bdynamic
25:
c:/tdm/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o
26: c:/tdm/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/crtbegin.o
27: -Lc:/tdm/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0
28: -Lc:/tdm/bin/../lib/gcc
29:
-Lc:/tdm/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/lib/../lib
30: -Lc:/tdm/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../lib
31:
-Lc:/tdm/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/lib
32: -Lc:/tdm/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../..
33: C:\Users\DESKTO~1\AppData\Local\Temp\ccU32yvY.o
34: -lmingw32
35: -lgcc
36: -lmoldname
37: -lmingwex
38: -lmsvcrt
39: -lpthread
40: -ladvapi32
41: -lshell32
42: -luser32
43: -lkernel32
44: -lmingw32
45: -lgcc
46: -lmoldname
47: -lmingwex
48: -lmsvcrt
49:
c:/tdm/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/lib/../lib/default-manifest.o
50: c:/tdm/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/crtend.o
-lmsvcrt is used twice (for good measure I guess).
When I use -lucrt, then it adds '-lucrt' between line 33 and 34;
-lmsvcrt is still used.
Inside my bcc product, it automatically sets up these 4 libraries, done
internally as there is no separate linker:
searchlibs[1]:="msvcrt"
searchlibs[2]:="gdi32"
searchlibs[3]:="user32"
searchlibs[4]:="kernel32"
Here, each name refers to a DLL file which needs to be in Windows' set
of search paths; but these system DLLs (inside \windows\system32)
alsways are. The ld.exe ones I believe refer to lib*.a files.
[toc] | [prev] | [next] | [standalone]
| From | Keith Thompson <Keith.S.Thompson+u@gmail.com> |
|---|---|
| Date | 2021-07-31 15:29 -0700 |
| Message-ID | <87bl6iazh8.fsf@nosuchdomain.example.com> |
| In reply to | #162160 |
[big snip]
I've just installed TDM-GCC on my Windows 10 laptop.
There are two current installers, one based on MinGW.org (32 bits) and
one based on MinGW-w64 (64 bits). I tried both.
Quick summary: printf's "%zu" works correctly with both implementations
with default command-line arguments.
The 32-bit version generated an executable that does not appear to
depend on MSVCRT.DLL. It has the known problem with passing long double
arguments to printf. (The problem: gcc and Microsoft's runtime library
make different assumptions about how long double is represented. It's
not a bug either in gcc or in the runtime library; it's a bug in the way
they're combined into a C implementation. I believe that defining the
macro __USE_MINGW_ANSI_STDIO works around the problem. I haven't
confirmed that it works with the 32-bit TDD-GCC.
The 64-bit version handles "%zu" and long double correctly.
It generates an executable that *does* depend on msvcrt.dll.
I found that a little suprising.
TDM-GCC does not provide the "file" and "ldd" commands, so I used
the Cygwin versions to analyze the generated executable.
I don't know where either version found a printf implementation that
correctly handles "%zu". The copy of msvcrt.dll referred to by the
64-bit executable has a timestamp (Oct 16 2020) newer than when Windows
was installed, so it's not the copy that came with Windows. I don't
know where it came from. Is it possible that newer versions of
msvcrt.dll implement "%zu"?
(To be clear, Bart, I am not saying you should care about "%zu",
nor am I suggesting that you should abandon Windows.)
Here's a log from the 32-bit version:
========================================
C:\cygwin64\home\kst\tdm>type c.c
#include <stdio.h>
int main(void) {
double x = 1.0/3.0;
long double xx = 1.0L/3.0L;
printf("sizeof (void*) = %zu", sizeof (void*));
printf(" (expected %d)\n", (int)sizeof (void*));
printf("long double x = %Lg", xx);
printf(" (expected %g)\n", x);
}
C:\cygwin64\home\kst\tdm>gcc --version
gcc (tdm-1) 10.3.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
C:\cygwin64\home\kst\tdm>gcc c.c -o c.exe & .\c.exe
sizeof (void*) = 4 (expected 4)
long double x = -3.72066e-103 (expected 0.333333)
C:\cygwin64\home\kst\tdm>C:\cygwin64\bin\file c.exe
c.exe: PE32 executable (console) Intel 80386, for MS Windows
C:\cygwin64\home\kst\tdm>C:\cygwin64\bin\ldd c.exe
ntdll.dll => /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll (0x7ff992ad0000)
ntdll.dll => /cygdrive/c/Windows/SysWOW64/ntdll.dll (0x76ee0000)
wow64.dll => /cygdrive/c/WINDOWS/System32/wow64.dll (0x7ff991600000)
wow64win.dll => /cygdrive/c/WINDOWS/System32/wow64win.dll (0x7ff991230000)
C:\cygwin64\home\kst\tdm>
========================================
Here's a log from the 64-bit version:
========================================
C:\cygwin64\home\kst\tdm>type c.c
#include <stdio.h>
int main(void) {
double x = 1.0/3.0;
long double xx = 1.0L/3.0L;
printf("sizeof (void*) = %zu", sizeof (void*));
printf(" (expected %d)\n", (int)sizeof (void*));
printf("long double x = %Lg", xx);
printf(" (expected %g)\n", x);
}
C:\cygwin64\home\kst\tdm>gcc --version
gcc (tdm64-1) 10.3.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
C:\cygwin64\home\kst\tdm>gcc c.c -o c.exe & .\c.exe
sizeof (void*) = 8 (expected 8)
long double x = 0.333333 (expected 0.333333)
C:\cygwin64\home\kst\tdm>C:\cygwin64\bin\file c.exe
c.exe: PE32+ executable (console) x86-64, for MS Windows
C:\cygwin64\home\kst\tdm>C:\cygwin64\bin\ldd c.exe
ntdll.dll => /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll (0x7ff992ad0000)
KERNEL32.DLL => /cygdrive/c/WINDOWS/System32/KERNEL32.DLL (0x7ff991fe0000)
KERNELBASE.dll => /cygdrive/c/WINDOWS/System32/KERNELBASE.dll (0x7ff990210000)
msvcrt.dll => /cygdrive/c/WINDOWS/System32/msvcrt.dll (0x7ff992100000)
C:\cygwin64\home\kst\tdm>
========================================
--
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 | Keith Thompson <Keith.S.Thompson+u@gmail.com> |
|---|---|
| Date | 2021-07-31 15:48 -0700 |
| Message-ID | <877dh6aylm.fsf@nosuchdomain.example.com> |
| In reply to | #162174 |
Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
> [big snip]
>
> I've just installed TDM-GCC on my Windows 10 laptop.
[big snip]
I've just done a similar experiment with tcc, installed on Windows 10
from
http://download.savannah.gnu.org/releases/tinycc/tcc-0.9.27-win64-bin.zip
There's a win32 installer as well. I didn't try it.
Using the same program from my previous post and compiling with default
options ("tcc c.c"), both "%zu" and "%Lg" work correctly.
The lcc-generated executable is a "PE32+ executable (console) x86-64
(stripped to external PDB), for MS Windows".
Running Cygwin "ldd" on the executable shows:
ntdll.dll => /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll (0x7ff992ad0000)
KERNEL32.DLL => /cygdrive/c/WINDOWS/System32/KERNEL32.DLL (0x7ff991fe0000)
KERNELBASE.dll => /cygdrive/c/WINDOWS/System32/KERNELBASE.dll (0x7ff990210000)
msvcrt.dll => /cygdrive/c/WINDOWS/System32/msvcrt.dll (0x7ff992100000)
--
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 | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-08-01 00:14 +0100 |
| Message-ID | <se4lfq$7h6$1@dont-email.me> |
| In reply to | #162176 |
On 31/07/2021 23:48, Keith Thompson wrote:
> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>> [big snip]
>>
>> I've just installed TDM-GCC on my Windows 10 laptop.
> [big snip]
>
> I've just done a similar experiment with tcc, installed on Windows 10
> from
>
> http://download.savannah.gnu.org/releases/tinycc/tcc-0.9.27-win64-bin.zip
>
> There's a win32 installer as well. I didn't try it.
>
> Using the same program from my previous post and compiling with default
> options ("tcc c.c"), both "%zu" and "%Lg" work correctly.
>
> The lcc-generated executable is a "PE32+ executable (console) x86-64
> (stripped to external PDB), for MS Windows".
You mean tcc rather than lcc?
I downloaded this exact version with these results:
--------------------------------------
C:\tcc>dir
...
01/08/2021 00:08 <DIR> .
01/08/2021 00:08 <DIR> ..
01/08/2021 00:04 <DIR> doc
01/08/2021 00:04 <DIR> examples
31/07/2021 02:12 86 hello.c
01/08/2021 00:06 2,048 hello.exe
01/08/2021 00:04 155,136 i386-win32-tcc.exe
01/08/2021 00:04 <DIR> include
01/08/2021 00:08 2,463 kkk1
01/08/2021 00:04 <DIR> lib
01/08/2021 00:04 <DIR> libtcc
01/08/2021 00:04 156,160 libtcc.dll
01/08/2021 00:04 23,552 tcc.exe
...
C:\tcc>type hello.c
#include <stdio.h>
int main(void) {
printf("Hello, World! %zu\n", sizeof(int));
}
C:\tcc>tcc hello.c
C:\tcc>hello
Hello, World! zu
This was on Windows 7, but my last test on W10 didn't fix anything so I
doubt it would here.
The EXE files shows it specifically imports printf() from msvcrt.dll
[toc] | [prev] | [next] | [standalone]
| From | Keith Thompson <Keith.S.Thompson+u@gmail.com> |
|---|---|
| Date | 2021-07-31 16:25 -0700 |
| Message-ID | <8735ruawww.fsf@nosuchdomain.example.com> |
| In reply to | #162178 |
Bart <bc@freeuk.com> writes:
> On 31/07/2021 23:48, Keith Thompson wrote:
>> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>>> [big snip]
>>>
>>> I've just installed TDM-GCC on my Windows 10 laptop.
>> [big snip]
>> I've just done a similar experiment with tcc, installed on Windows
>> 10
>> from
>> http://download.savannah.gnu.org/releases/tinycc/tcc-0.9.27-win64-bin.zip
>> There's a win32 installer as well. I didn't try it.
>> Using the same program from my previous post and compiling with
>> default
>> options ("tcc c.c"), both "%zu" and "%Lg" work correctly.
>> The lcc-generated executable is a "PE32+ executable (console) x86-64
>> (stripped to external PDB), for MS Windows".
>
> You mean tcc rather than lcc?
Yes, thank you, that was a typo.
> I downloaded this exact version with these results:
>
> --------------------------------------
> C:\tcc>dir
> ...
> 01/08/2021 00:08 <DIR> .
> 01/08/2021 00:08 <DIR> ..
> 01/08/2021 00:04 <DIR> doc
> 01/08/2021 00:04 <DIR> examples
> 31/07/2021 02:12 86 hello.c
> 01/08/2021 00:06 2,048 hello.exe
> 01/08/2021 00:04 155,136 i386-win32-tcc.exe
> 01/08/2021 00:04 <DIR> include
> 01/08/2021 00:08 2,463 kkk1
> 01/08/2021 00:04 <DIR> lib
> 01/08/2021 00:04 <DIR> libtcc
> 01/08/2021 00:04 156,160 libtcc.dll
> 01/08/2021 00:04 23,552 tcc.exe
> ...
>
> C:\tcc>type hello.c
> #include <stdio.h>
> int main(void) {
> printf("Hello, World! %zu\n", sizeof(int));
> }
>
> C:\tcc>tcc hello.c
>
> C:\tcc>hello
> Hello, World! zu
>
>
> This was on Windows 7, but my last test on W10 didn't fix anything so
> I doubt it would here.
Results on your Windows 10 system could be interesting.
> The EXE files shows it specifically imports printf() from msvcrt.dll
OK, so it works correctly on my system but not on yours. I'll note that
I've seen multiple versions of msvcrt.dll in different directories on my
system (different sizes, different timestamps). Either my msvcrt.dll
implements %zu correctly, or tcc and tdm-gcc generate executables that
use something other than msvcrt.dll to implement printf.
This discussion was triggered by your statement that %zu "doesn't work
on Windows". It clearly does, though it might sometimes fail for
reasons that are not clear. I do not expect you to acknowledge that
your original statement was false.
--
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 | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-08-01 00:52 +0100 |
| Message-ID | <se4nnf$mh8$1@dont-email.me> |
| In reply to | #162179 |
On 01/08/2021 00:25, Keith Thompson wrote: > Bart <bc@freeuk.com> writes: >> On 31/07/2021 23:48, Keith Thompson wrote: >> This was on Windows 7, but my last test on W10 didn't fix anything so >> I doubt it would here. > > Results on your Windows 10 system could be interesting. Yeah. On the blue W10 laptop, it didn't work. On the purple one, it did. msvcrt.dll on the blue one is dated 2016; on the purple, 2019. (I didn't have much luck copying the 'good' msvcrt.dll to my W7 PC, but it needs a better attempt.) > This discussion was triggered by your statement that %zu "doesn't work > on Windows". It clearly does, though it might sometimes fail for > reasons that are not clear. I do not expect you to acknowledge that > your original statement was false. OK, it doesn't when msvcrt.dll is too old. Although I don't really distribute programs anymore, it is conceivable that not everyone will have the very latest libraries, not more than a couple of years old. /I/ don't! So I still don't intend using that feature. (When no-one's looking, I naughtily just use "%d". On Win64 it's not a problem, it will just ignore the high word. Unless sizeof actually yields value above 2GB.)
[toc] | [prev] | [next] | [standalone]
| From | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-08-01 00:29 +0100 |
| Message-ID | <se4mc1$d7k$1@dont-email.me> |
| In reply to | #162178 |
On 01/08/2021 00:14, Bart wrote:
> On 31/07/2021 23:48, Keith Thompson wrote:
>> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>>> [big snip]
>>>
>>> I've just installed TDM-GCC on my Windows 10 laptop.
>> [big snip]
>>
>> I've just done a similar experiment with tcc, installed on Windows 10
>> from
>>
>>
>> http://download.savannah.gnu.org/releases/tinycc/tcc-0.9.27-win64-bin.zip
>>
>> There's a win32 installer as well. I didn't try it.
>>
>> Using the same program from my previous post and compiling with default
>> options ("tcc c.c"), both "%zu" and "%Lg" work correctly.
>>
>> The lcc-generated executable is a "PE32+ executable (console) x86-64
>> (stripped to external PDB), for MS Windows".
You might try also this compiler:
https://github.com/sal55/langs/blob/master/bcc.exe
Run as:
bcc hello.c
This relies 100% on Windows' msvcrt.dll to do printf.
[toc] | [prev] | [next] | [standalone]
| From | Keith Thompson <Keith.S.Thompson+u@gmail.com> |
|---|---|
| Date | 2021-07-31 16:50 -0700 |
| Message-ID | <87y29m9h6y.fsf@nosuchdomain.example.com> |
| In reply to | #162180 |
Bart <bc@freeuk.com> writes:
> On 01/08/2021 00:14, Bart wrote:
>> On 31/07/2021 23:48, Keith Thompson wrote:
>>> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>>>> [big snip]
>>>>
>>>> I've just installed TDM-GCC on my Windows 10 laptop.
>>> [big snip]
>>>
>>> I've just done a similar experiment with tcc, installed on Windows 10
>>> from
>>>
>>> http://download.savannah.gnu.org/releases/tinycc/tcc-0.9.27-win64-bin.zip
>>>
>>> There's a win32 installer as well. I didn't try it.
>>>
>>> Using the same program from my previous post and compiling with default
>>> options ("tcc c.c"), both "%zu" and "%Lg" work correctly.
>>>
>>> The lcc-generated executable is a "PE32+ executable (console) x86-64
>>> (stripped to external PDB), for MS Windows".
[correction: tcc-generated]
> You might try also this compiler:
>
> https://github.com/sal55/langs/blob/master/bcc.exe
>
> Run as:
>
> bcc hello.c
>
> This relies 100% on Windows' msvcrt.dll to do printf.
This version of C:\cygwin64\home\kst\bcc\bcc.exe is not compatible
with the version of Windows you're running. Check your computer's
system information and then contact the software publisher.
A popup error message (which I can't copy and paste) says "Unsupported
16-Bit Application".
--
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 | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-08-01 01:16 +0100 |
| Message-ID | <se4p53$br$1@dont-email.me> |
| In reply to | #162181 |
On 01/08/2021 00:50, Keith Thompson wrote:
> Bart <bc@freeuk.com> writes:
>> On 01/08/2021 00:14, Bart wrote:
>>> On 31/07/2021 23:48, Keith Thompson wrote:
>>>> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>>>>> [big snip]
>>>>>
>>>>> I've just installed TDM-GCC on my Windows 10 laptop.
>>>> [big snip]
>>>>
>>>> I've just done a similar experiment with tcc, installed on Windows 10
>>>> from
>>>>
>>>> http://download.savannah.gnu.org/releases/tinycc/tcc-0.9.27-win64-bin.zip
>>>>
>>>> There's a win32 installer as well. I didn't try it.
>>>>
>>>> Using the same program from my previous post and compiling with default
>>>> options ("tcc c.c"), both "%zu" and "%Lg" work correctly.
>>>>
>>>> The lcc-generated executable is a "PE32+ executable (console) x86-64
>>>> (stripped to external PDB), for MS Windows".
> [correction: tcc-generated]
>
>> You might try also this compiler:
>>
>> https://github.com/sal55/langs/blob/master/bcc.exe
>>
>> Run as:
>>
>> bcc hello.c
>>
>> This relies 100% on Windows' msvcrt.dll to do printf.
>
> This version of C:\cygwin64\home\kst\bcc\bcc.exe is not compatible
> with the version of Windows you're running. Check your computer's
> system information and then contact the software publisher.
>
> A popup error message (which I can't copy and paste) says "Unsupported
> 16-Bit Application".
>
OK, if the size of bcc.exe is 1,046,016 then it's a puzzle. If a bit
smaller, it might be corrupted. In either case, never mind.
(I no longer have up-to-date generated-C versions as an alternative.)
Dump of bcc.exe; Size = 1046016 bytes
0000: 4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00 MZ..............
0010: b8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 ........@.......
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030: 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 ................
0040: 0e 1f ba 0e 00 b4 09 cd 21 b8 01 4c cd 21 54 68 ........!..L.!Th
0050: 69 73 20 70 72 6f 67 72 61 6d 20 63 61 6e 6e 6f is program canno
0060: 74 20 62 65 20 72 75 6e 20 69 6e 20 44 4f 53 20 t be run in DOS
0070: 6d 6f 64 65 2e 0d 0d 0a 24 00 00 00 00 00 00 00 mode....$.......
0080: 50 45 00 00 64 86 04 00 00 00 00 00 00 00 00 00 PE..d...........
0090: 00 00 00 00 f0 00 2f 02 0b 02 01 00 00 e8 03 00 ....../.........
00a0: 00 0a 0c 00 00 e2 42 00 00 a6 03 00 00 10 00 00 ......B.........
00b0: 00 00 40 00 00 00 00 00 00 10 00 00 00 02 00 00 ..@.............
00c0: 04 00 00 00 00 00 00 00 05 00 02 00 00 00 00 00 ................
00d0: 00 00 53 00 00 04 00 00 00 00 00 00 03 00 00 00 ..S.............
00e0: 00 00 40 00 00 00 00 00 00 00 20 00 00 00 00 00 ..@....... .....
00f0: 00 00 10 00 00 00 00 00 00 10 00 00 00 00 00 00 ................
0100: 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 ................
[toc] | [prev] | [next] | [standalone]
| From | Keith Thompson <Keith.S.Thompson+u@gmail.com> |
|---|---|
| Date | 2021-07-31 18:01 -0700 |
| Message-ID | <87r1fe9dwb.fsf@nosuchdomain.example.com> |
| In reply to | #162184 |
Bart <bc@freeuk.com> writes:
> On 01/08/2021 00:50, Keith Thompson wrote:
>> Bart <bc@freeuk.com> writes:
[...]
>>> You might try also this compiler:
>>>
>>> https://github.com/sal55/langs/blob/master/bcc.exe
>>>
>>> Run as:
>>>
>>> bcc hello.c
>>>
[...]
>> A popup error message (which I can't copy and paste) says
>> "Unsupported 16-Bit Application".
>
> OK, if the size of bcc.exe is 1,046,016 then it's a puzzle. If a bit
> smaller, it might be corrupted. In either case, never mind.
My mistake, I assumed I could download it directly from that URL and got
an HTML file (and didn't check its contents).
The executable is 1046016 bytes. It would't compile my test program
because it apparently treats "long double" as a syntax error. After
I commented out that part of it, the compiled program handles "%zu"
correctly.
[...]
--
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 | gazelle@shell.xmission.com (Kenny McCormack) |
|---|---|
| Date | 2021-08-01 01:38 +0000 |
| Message-ID | <se4tv6$8fmg$1@news.xmission.com> |
| In reply to | #162186 |
In article <87r1fe9dwb.fsf@nosuchdomain.example.com>, Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote: >Bart <bc@freeuk.com> writes: >> On 01/08/2021 00:50, Keith Thompson wrote: >>> Bart <bc@freeuk.com> writes: >[...] >>>> You might try also this compiler: >>>> >>>> https://github.com/sal55/langs/blob/master/bcc.exe As I'm sure you figured out, you have to change "blob" to "raw" in the above URL to make it fetchable with, e.g., "wget" (or "curl", etc) >>> A popup error message (which I can't copy and paste) says >>> "Unsupported 16-Bit Application". ... >My mistake, I assumed I could download it directly from that URL and got >an HTML file (and didn't check its contents). -- I've learned that people will forget what you said, people will forget what you did, but people will never forget how you made them feel. - Maya Angelou -
[toc] | [prev] | [next] | [standalone]
| From | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-08-01 11:41 +0100 |
| Message-ID | <se5tp1$ruk$1@dont-email.me> |
| In reply to | #162187 |
On 01/08/2021 02:38, Kenny McCormack wrote: > In article <87r1fe9dwb.fsf@nosuchdomain.example.com>, > Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote: >> Bart <bc@freeuk.com> writes: >>> On 01/08/2021 00:50, Keith Thompson wrote: >>>> Bart <bc@freeuk.com> writes: >> [...] >>>>> You might try also this compiler: >>>>> >>>>> https://github.com/sal55/langs/blob/master/bcc.exe > > As I'm sure you figured out, you have to change "blob" to "raw" in the > above URL to make it fetchable with, e.g., "wget" (or "curl", etc) I don't normally put binaries on github (I don't think they encourage it; it's supposed to be for source code). But I tested it by clicking on 'Download'.
[toc] | [prev] | [next] | [standalone]
| From | gazelle@shell.xmission.com (Kenny McCormack) |
|---|---|
| Date | 2021-08-01 19:14 +0000 |
| Message-ID | <se6rql$9d40$1@news.xmission.com> |
| In reply to | #162188 |
In article <se5tp1$ruk$1@dont-email.me>, Bart <bc@freeuk.com> wrote: >On 01/08/2021 02:38, Kenny McCormack wrote: >> In article <87r1fe9dwb.fsf@nosuchdomain.example.com>, >> Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote: >>> Bart <bc@freeuk.com> writes: >>>> On 01/08/2021 00:50, Keith Thompson wrote: >>>>> Bart <bc@freeuk.com> writes: >>> [...] >>>>>> You might try also this compiler: >>>>>> >>>>>> https://github.com/sal55/langs/blob/master/bcc.exe >> >> As I'm sure you figured out, you have to change "blob" to "raw" in the >> above URL to make it fetchable with, e.g., "wget" (or "curl", etc) > >I don't normally put binaries on github (I don't think they encourage >it; it's supposed to be for source code). > >But I tested it by clicking on 'Download'. Given the problem that Keith reported (ending up with an HTML file instead of a binary executable), I assumed he had used something like wget (or curl) on the URL you provided. That would, indeed, just fetch some (useless) HTML. As noted above, changing "blob" to "raw" will give you a URL that you can then wget and it will get you what you want. Like Keith, I try to avoid using GUI web browsers with github. I just get stuff with wget. -- It's possible that leasing office space to a Starbucks is a greater liability in today's GOP than is hitting your mother on the head with a hammer.
[toc] | [prev] | [next] | [standalone]
| From | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-08-01 11:54 +0100 |
| Message-ID | <se5uhu$249$1@dont-email.me> |
| In reply to | #162186 |
On 01/08/2021 02:01, Keith Thompson wrote:
> Bart <bc@freeuk.com> writes:
>> On 01/08/2021 00:50, Keith Thompson wrote:
>>> Bart <bc@freeuk.com> writes:
> [...]
>>>> You might try also this compiler:
>>>>
>>>> https://github.com/sal55/langs/blob/master/bcc.exe
>>>>
>>>> Run as:
>>>>
>>>> bcc hello.c
>>>>
> [...]
>>> A popup error message (which I can't copy and paste) says
>>> "Unsupported 16-Bit Application".
>>
>> OK, if the size of bcc.exe is 1,046,016 then it's a puzzle. If a bit
>> smaller, it might be corrupted. In either case, never mind.
>
> My mistake, I assumed I could download it directly from that URL and got
> an HTML file (and didn't check its contents).
>
> The executable is 1046016 bytes. It would't compile my test program
> because it apparently treats "long double" as a syntax error. After
> I commented out that part of it, the compiled program handles "%zu"
> correctly.
That's a surprise, long double should work (but treats it as double):
C:\c>type c.c
#include <stdio.h>
int main(void) {
printf("sizeof = %d\n", (int)sizeof(long double));
}
C:\c>bcc c
Compiling c.c to c.exe
C:\c>c
sizeof = 8
C:\c>
(Lots and lots of things don't work properly, as I've found over the
last 4 years, so the product is for private use.
I may get around to a new front-end at some point, to go with a new
back-end I'm developing now for general use.)
> The executable is 1046016 bytes.
(The actual compiler is 380KB, the rest is headers, mostly windows.h.
You can see the internal headers with 'bcc -writeheaders' which writes
them as .hdr files to the current directory.)
[toc] | [prev] | [next] | [standalone]
| From | Bart <bc@freeuk.com> |
|---|---|
| Date | 2021-08-01 16:34 +0100 |
| Message-ID | <se6eum$ljc$1@dont-email.me> |
| In reply to | #162189 |
On 01/08/2021 11:54, Bart wrote: > On 01/08/2021 02:01, Keith Thompson wrote: >> Bart <bc@freeuk.com> writes: >>> On 01/08/2021 00:50, Keith Thompson wrote: >>>> Bart <bc@freeuk.com> writes: >> [...] >>>>> You might try also this compiler: >>>>> >>>>> https://github.com/sal55/langs/blob/master/bcc.exe >>>>> >>>>> Run as: >>>>> >>>>> bcc hello.c >>>>> >> [...] >>>> A popup error message (which I can't copy and paste) says >>>> "Unsupported 16-Bit Application". >>> >>> OK, if the size of bcc.exe is 1,046,016 then it's a puzzle. If a bit >>> smaller, it might be corrupted. In either case, never mind. >> >> My mistake, I assumed I could download it directly from that URL and got >> an HTML file (and didn't check its contents). >> >> The executable is 1046016 bytes. It would't compile my test program >> because it apparently treats "long double" as a syntax error. After >> I commented out that part of it, the compiled program handles "%zu" >> correctly. > > > That's a surprise, long double should work (but treats it as double): Assuming it's the program you posted previously, the problem was the 'L' here: 1.0L There are two handlers for float literals, one using strtod() for base 10, the other for other bases, which omitted support for 'L'. The strtod version was temporarily commented out. Now both support 'L' (ie. ignore it).
[toc] | [prev] | [next] | [standalone]
| From | Keith Thompson <Keith.S.Thompson+u@gmail.com> |
|---|---|
| Date | 2021-08-01 14:58 -0700 |
| Message-ID | <87im0oakti.fsf@nosuchdomain.example.com> |
| In reply to | #162190 |
Bart <bc@freeuk.com> writes:
> On 01/08/2021 11:54, Bart wrote:
>> On 01/08/2021 02:01, Keith Thompson wrote:
>>> Bart <bc@freeuk.com> writes:
>>>> On 01/08/2021 00:50, Keith Thompson wrote:
>>>>> Bart <bc@freeuk.com> writes:
>>> [...]
>>>>>> You might try also this compiler:
>>>>>>
>>>>>> https://github.com/sal55/langs/blob/master/bcc.exe
>>>>>>
>>>>>> Run as:
>>>>>>
>>>>>> bcc hello.c
>>>>>>
>>> [...]
>>>>> A popup error message (which I can't copy and paste) says
>>>>> "Unsupported 16-Bit Application".
>>>>
>>>> OK, if the size of bcc.exe is 1,046,016 then it's a puzzle. If a bit
>>>> smaller, it might be corrupted. In either case, never mind.
>>>
>>> My mistake, I assumed I could download it directly from that URL and got
>>> an HTML file (and didn't check its contents).
>>>
>>> The executable is 1046016 bytes. It would't compile my test program
>>> because it apparently treats "long double" as a syntax error. After
>>> I commented out that part of it, the compiled program handles "%zu"
>>> correctly.
>>
>> That's a surprise, long double should work (but treats it as double):
>
> Assuming it's the program you posted previously, the problem was the
> 'L' here:
>
> 1.0L
>
> There are two handlers for float literals, one using strtod() for base
> 10, the other for other bases, which omitted support for 'L'. The
> strtod version was temporarily commented out. Now both support 'L'
> (ie. ignore it).
Yes, it was the "L" suffix.
If you care about conformance, giving double and long double the same
size and representation is valid, but they're still distinct types.
For example, a conforming C compiler must issue a diagnostic for:
double *p1 = 0;
long double *p2 = p1;
(If you don't care about conformance, there's no need to say so.)
--
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 | Manfred <noname@invalid.add> |
|---|---|
| Date | 2021-08-01 19:27 +0200 |
| Message-ID | <se6lif$ji5$1@gioia.aioe.org> |
| In reply to | #162174 |
On 8/1/21 12:29 AM, Keith Thompson wrote:
> [big snip]
>
> I've just installed TDM-GCC on my Windows 10 laptop.
>
> There are two current installers, one based on MinGW.org (32 bits) and
> one based on MinGW-w64 (64 bits). I tried both.
>
> Quick summary: printf's "%zu" works correctly with both implementations
> with default command-line arguments.
>
> The 32-bit version generated an executable that does not appear to
> depend on MSVCRT.DLL. It has the known problem with passing long double
> arguments to printf. (The problem: gcc and Microsoft's runtime library
> make different assumptions about how long double is represented. It's
> not a bug either in gcc or in the runtime library; it's a bug in the way
> they're combined into a C implementation. I believe that defining the
> macro __USE_MINGW_ANSI_STDIO works around the problem. I haven't
> confirmed that it works with the 32-bit TDD-GCC.
>
> The 64-bit version handles "%zu" and long double correctly.
> It generates an executable that *does* depend on msvcrt.dll.
> I found that a little suprising.
It is also surprising that the generated 32-bit executable references
dll's both from System32 and SysWOW64.
>
> TDM-GCC does not provide the "file" and "ldd" commands, so I used
> the Cygwin versions to analyze the generated executable.
>
> I don't know where either version found a printf implementation that
> correctly handles "%zu". The copy of msvcrt.dll referred to by the
> 64-bit executable has a timestamp (Oct 16 2020) newer than when Windows
> was installed, so it's not the copy that came with Windows. I don't
> know where it came from.
Probably from the "lovely" Windows Update? (© Waldek Hebisch)
Is it possible that newer versions of
> msvcrt.dll implement "%zu"?
My Win10 box has a msvcrt.dll whose printf implements "%zu" as well.
However, Microsoft ships other dll's that export their own printf.
Notable examples are runtime libs that ship with applications developed
with relatively recent versions of Visual Studio.
I still have a copy of MSVC 5.0, and I verified that msvcrt.dll was
indeed the redistributable Microsoft C runtime that came with that
product - keyword here being "Microsoft", i.e. /their/ implementation of
C, and not intended to be used by applications other than those
developed with VisualC++. More recent versions (I'd say those from the
current century) moved to msvcrXXX.dll + others.
>
> (To be clear, Bart, I am not saying you should care about "%zu",
> nor am I suggesting that you should abandon Windows.)
>
> Here's a log from the 32-bit version:
> ========================================
> C:\cygwin64\home\kst\tdm>type c.c
> #include <stdio.h>
> int main(void) {
> double x = 1.0/3.0;
> long double xx = 1.0L/3.0L;
> printf("sizeof (void*) = %zu", sizeof (void*));
> printf(" (expected %d)\n", (int)sizeof (void*));
> printf("long double x = %Lg", xx);
> printf(" (expected %g)\n", x);
> }
>
> C:\cygwin64\home\kst\tdm>gcc --version
> gcc (tdm-1) 10.3.0
> Copyright (C) 2020 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
>
> C:\cygwin64\home\kst\tdm>gcc c.c -o c.exe & .\c.exe
> sizeof (void*) = 4 (expected 4)
> long double x = -3.72066e-103 (expected 0.333333)
>
> C:\cygwin64\home\kst\tdm>C:\cygwin64\bin\file c.exe
> c.exe: PE32 executable (console) Intel 80386, for MS Windows
>
> C:\cygwin64\home\kst\tdm>C:\cygwin64\bin\ldd c.exe
> ntdll.dll => /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll (0x7ff992ad0000)
> ntdll.dll => /cygdrive/c/Windows/SysWOW64/ntdll.dll (0x76ee0000)
> wow64.dll => /cygdrive/c/WINDOWS/System32/wow64.dll (0x7ff991600000)
> wow64win.dll => /cygdrive/c/WINDOWS/System32/wow64win.dll (0x7ff991230000)
>
> C:\cygwin64\home\kst\tdm>
> ========================================
>
> Here's a log from the 64-bit version:
> ========================================
> C:\cygwin64\home\kst\tdm>type c.c
> #include <stdio.h>
> int main(void) {
> double x = 1.0/3.0;
> long double xx = 1.0L/3.0L;
> printf("sizeof (void*) = %zu", sizeof (void*));
> printf(" (expected %d)\n", (int)sizeof (void*));
> printf("long double x = %Lg", xx);
> printf(" (expected %g)\n", x);
> }
>
> C:\cygwin64\home\kst\tdm>gcc --version
> gcc (tdm64-1) 10.3.0
> Copyright (C) 2020 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
>
> C:\cygwin64\home\kst\tdm>gcc c.c -o c.exe & .\c.exe
> sizeof (void*) = 8 (expected 8)
> long double x = 0.333333 (expected 0.333333)
>
> C:\cygwin64\home\kst\tdm>C:\cygwin64\bin\file c.exe
> c.exe: PE32+ executable (console) x86-64, for MS Windows
>
> C:\cygwin64\home\kst\tdm>C:\cygwin64\bin\ldd c.exe
> ntdll.dll => /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll (0x7ff992ad0000)
> KERNEL32.DLL => /cygdrive/c/WINDOWS/System32/KERNEL32.DLL (0x7ff991fe0000)
> KERNELBASE.dll => /cygdrive/c/WINDOWS/System32/KERNELBASE.dll (0x7ff990210000)
> msvcrt.dll => /cygdrive/c/WINDOWS/System32/msvcrt.dll (0x7ff992100000)
>
> C:\cygwin64\home\kst\tdm>
> ========================================
>
[toc] | [prev] | [next] | [standalone]
| From | Keith Thompson <Keith.S.Thompson+u@gmail.com> |
|---|---|
| Date | 2021-07-30 14:43 -0700 |
| Message-ID | <87mtq3cwat.fsf@nosuchdomain.example.com> |
| In reply to | #162132 |
Bart <bc@freeuk.com> writes:
> On 30/07/2021 19:12, Keith Thompson wrote:
>> Bart <bc@freeuk.com> writes:
>> [...]
>>> OK. But gcc and tcc are products that you expect to make the necessary
>>> arrangements for ensuring they your program can call a C standard
>>> function called "printf".
>> No, they are not. They are components that can be combined with
>> other
>> components to create a C implementation. Getting that right is the
>> responsibility of whoever puts together the implementation.
>> You've written compilers, so you should know all this stuff.
>> If someone puts together an implementation that uses gcc as its
>> compiler
>> and the obsolete MSVCRT.DLL as its runtime library, the result is a
>> non-conforming implementation.
>
> Well, /I/ didn't tell gcc which runtime to choose. Or is that now my
> responsibility?
Whose responsibility do you think it is?
You installed gcc on your Windows system *somehow*. The gcc project
itself does not provide installers for Windows. You installed
something from some third party, and that installer is responsible
for coordinating the various components of the implementation,
of which the compiler is just one.
If you're satisfied with the way your system is working now, then
neither you nor anyone else is responsible for changing it.
An implementation that didn't support "%zu" would be a problem *for
me*. If I were using such an implementation, I would look for ways to
fix or replace it. You will of course do what you want.
A great deal of this thread started when you said you wanted to avoid
"%zu", and I went out of my way not to ask why. (Admittedly I was being
a bit snarky.) I nevertheless have a better understanding now of why
you want to avoid "%zu", and I'm not quite sure why we're still talking
about it.
> I now know that mine will default to Windows' msvcrt.dll unless I
> specifically tell it to use libucrt.a. Why the default isn't the other
> way around is not something I'm surprised at any more; there are much
> worse defaults, and more dangerous.
You realize that has to do with C implementations on Windows, not with C
the language.
>> My experience with Windows C implementations is fairly narrow, but I get
>> the impression that most Windows C programmers don't need to worry about
>> "%zu" because they use implementations that support it. If it's a
>> widespread problem (which is possible), I haven't heard about it other
>> than from you.
>
> Download tcc, which is now a well-respected C99 implementation, and
> blazingly fast, and let me know if it supports "zu" out-of-the-box,
> and if not, whether there is a way to make it do so.
I might try installing tcc on Windows later. Of course whether it
supports "%zu" or not depends on what runtime library implementation
it's configured to use. I see the web site has several zip files. I
see that at least one of them has some references to msvcrt, but I don't
know the details.
> If you're on Windows, try this:
>
> * Download the program:
>
> https://github.com/sal55/langs/blob/master/qq.exe (about 640KB)
No, I'm not going to download and run a binary executable from some
random GitHub repo.
[snip]
> I'd be interested in whether any Windows executable produced by your
> gcc also imports msvcrt.dll, which looks like this using my dump
> program:
[snip]
On Unix/Linux systems, the "ldd" command shows a list of the shared
objects that an executable depends on. The version that runs on Cygwin
does the same thing, and shows a list of DLLs. Here's what I get when I
compile a simple "hello" program using the default gcc on Cygwin (yes,
I'm aware that this is likely not to be typical of how a non-Cygwin gcc
installation would work):
$ gcc hello.c -o hello.exe
$ file hello.exe
hello.exe: PE32+ executable (console) x86-64, for MS Windows
$ ldd hello.exe
ntdll.dll => /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll (0x7ffe5db80000)
KERNEL32.DLL => /cygdrive/c/WINDOWS/System32/KERNEL32.DLL (0x7ffe5c2c0000)
KERNELBASE.dll => /cygdrive/c/WINDOWS/System32/KERNELBASE.dll (0x7ffe5b8a0000)
cygwin1.dll => /usr/bin/cygwin1.dll (0x180040000)
$
Nothing I've tried gives me an executable that refers to msvcrt.dll.
--
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 | antispam@math.uni.wroc.pl |
|---|---|
| Date | 2021-07-30 23:33 +0000 |
| Message-ID | <se2294$6nv$1@z-news.wcss.wroc.pl> |
| In reply to | #162113 |
Bart <bc@freeuk.com> wrote:
>
> Further, if I try and compile this program:
>
> extern int printf(long long,...);
>
> int main(void) {
> printf((long long)"Hello, World!\n");
> }
>
> gcc complains that my printf conflicts with the built-in printf; so it
> knows perfectly well what it is. It will even tell me if I get the
> format codes wrong!
You should know how things work (and 'long long' is sign that
you prefer to complain instead of taking advantage of capabilites
of gcc). As a little ilustration that printf is independent from
gcc you can try the following (on Linux, see remarks below about
Windows).
You need two files, first called 'printf.c' second 'ts2a.c'.
---------------------<printf.c start>----------------------
extern int printf(const char *f, ...);
extern int putchar(int c);
#include <stdarg.h>
#include <string.h>
int
printf(const char *f, ...) {
if (!strcmp(f, "%zu\n")) {
va_list ap;
va_start(ap, f);
size_t val = va_arg(ap, size_t);
va_end(ap);
if ((val < 10) && (val >= 0)) {
putchar('0'+val);
putchar('\n');
return 2;
}
}
return 0;
}
---------------------<printf.c end>------------------------
---------------------<ts2a.c start>------------------------
extern int printf(const char *f, ...);
int main(void) {
printf("%zu\n", sizeof(void*));
}
---------------------<ts2a.c end>--------------------------
First compile printf.c:
gcc -Wall -O -c printf.c
Then compile test program:
gcc -Wall -O ts2a.c printf.o -o ts2a
Resulting program uses 'printf' defined in 'printf.c'. Of course,
this is silly implementation handling only single format string,
but using the similar principle one can create full version.
More elegant solution would put new printf (and variations of
printf) in a new library (say 'libmyc'). Linking with 'libmyc'
would give you better version of selected standard function
and allow use of other functions from system library. You can
do equivalent of this on Windows. Sorry, I will not give you
details, I did such things on (more precisly for) Windows
in the past but it you who apparently cares about Windows,
so it is for you to do the homework.
--
Waldek Hebisch
[toc] | [prev] | [next] | [standalone]
Page 17 of 20 — ← Prev page 1 … 15 16 [17] 18 19 20 Next page →
Back to top | Article view | comp.lang.c
csiph-web