Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #95408 > unrolled thread
| Started by | fir <profesor.fir@gmail.com> |
|---|---|
| First post | 2016-10-30 05:42 -0700 |
| Last post | 2016-11-03 03:58 -0700 |
| Articles | 20 on this page of 410 — 25 participants |
Back to article view | Back to comp.lang.c
usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-10-30 05:42 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-10-30 17:17 +0000
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-10-31 11:02 -0700
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-10-30 12:13 -0700
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-10-30 12:52 -0700
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-10-30 13:38 -0700
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-10-30 14:32 -0700
Re: usecases of void foo(char **b) {} "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-10-30 13:49 -0700
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-10-30 14:04 -0700
Re: usecases of void foo(char **b) {} "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-10-30 14:14 -0700
Re: usecases of void foo(char **b) {} "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-10-30 14:20 -0700
Re: usecases of void foo(char **b) {} "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-10-30 14:23 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-10-31 13:40 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-01 01:45 +0000
Re: usecases of void foo(char **b) {} Tim Rentsch <txr@alumni.caltech.edu> - 2016-11-01 07:55 -0700
Re: usecases of void foo(char **b) {} mark.bluemel@gmail.com - 2016-11-01 08:07 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-01 16:55 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-01 11:58 -0700
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-11-01 12:34 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-01 12:49 -0700
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-01 20:13 +0000
Re: usecases of void foo(char **b) {} Tim Rentsch <txr@alumni.caltech.edu> - 2016-11-02 12:45 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-02 20:37 +0000
Re: usecases of void foo(char **b) {} Tim Rentsch <txr@alumni.caltech.edu> - 2016-11-15 10:50 -0800
Re: usecases of void foo(char **b) {} David Brown <david.brown@hesbynett.no> - 2016-10-31 12:37 +0100
Re: usecases of void foo(char **b) {} "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-10-31 06:01 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-10-31 11:11 -0700
Re: usecases of void foo(char **b) {} Ike Naar <ike@iceland.freeshell.org> - 2016-10-31 01:26 +0000
Re: usecases of void foo(char **b) {} "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-10-30 12:49 -0700
Re: usecases of void foo(char **b) {} "Pascal J. Bourguignon" <pjb@informatimago.com> - 2016-10-31 14:16 +0100
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-10-31 14:20 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-10-31 14:55 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-10-31 08:10 -0700
Re: usecases of void foo(char **b) {} "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-10-31 08:27 -0700
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-10-31 09:12 -0700
Re: usecases of void foo(char **b) {} "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-10-31 09:20 -0700
Re: usecases of void foo(char **b) {} "Pascal J. Bourguignon" <pjb@informatimago.com> - 2016-11-05 04:24 +0100
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-10-31 16:35 +0000
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-10-31 09:59 -0700
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-10-31 17:04 +0000
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-10-31 12:16 -0700
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-10-31 19:19 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-01 08:31 -0700
Re: usecases of void foo(char **b) {} Jerry Stuckle <jstucklex@attglobal.net> - 2016-11-01 22:07 -0400
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-02 01:55 -0700
Re: usecases of void foo(char **b) {} Jerry Stuckle <jstucklex@attglobal.net> - 2016-11-02 09:18 -0400
Re: usecases of void foo(char **b) {} David Brown <david.brown@hesbynett.no> - 2016-11-02 15:45 +0100
Re: usecases of void foo(char **b) {} luser droog <luser.droog@gmail.com> - 2016-11-02 07:48 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-02 07:58 -0700
Re: usecases of void foo(char **b) {} luser droog <luser.droog@gmail.com> - 2016-11-02 08:05 -0700
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-02 17:17 +0000
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-02 10:37 -0700
Re: usecases of void foo(char **b) {} David Brown <david.brown@hesbynett.no> - 2016-11-02 20:38 +0100
Re: usecases of void foo(char **b) {} "Pascal J. Bourguignon" <pjb@informatimago.com> - 2016-11-05 04:37 +0100
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-05 14:12 -0700
Re: usecases of void foo(char **b) {} "Pascal J. Bourguignon" <pjb@informatimago.com> - 2016-11-07 00:37 +0100
Re: usecases of void foo(char **b) {} Jerry Stuckle <jstucklex@attglobal.net> - 2016-11-02 11:03 -0400
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-10-31 11:20 -0700
Re: usecases of void foo(char **b) {} "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-10-31 11:24 -0700
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-11-01 09:02 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-01 16:27 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-01 17:46 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-01 11:46 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-01 19:41 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-01 13:10 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-01 20:50 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-01 21:04 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-01 22:22 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-01 22:54 +0000
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-11-02 07:02 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-02 18:53 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-02 12:24 -0700
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-02 20:12 +0000
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-11-02 13:21 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-02 21:11 +0000
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-01 14:46 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-01 15:28 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-02 02:32 -0700
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-01 15:26 -0700
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-11-01 15:55 -0700
Re: usecases of void foo(char **b) {} Tim Rentsch <txr@alumni.caltech.edu> - 2016-11-02 12:53 -0700
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-01 16:39 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-01 16:55 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-02 02:21 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-02 05:02 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-02 12:58 +0000
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-02 08:03 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-02 08:14 -0700
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-02 09:19 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-02 17:54 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-02 11:47 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-02 19:01 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-02 12:28 -0700
Re: usecases of void foo(char **b) {} Tim Rentsch <txr@alumni.caltech.edu> - 2016-11-12 13:36 -0800
Re: usecases of void foo(char **b) {} Ian Collins <ian-news@hotmail.com> - 2016-11-13 11:07 +1300
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-12 22:27 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-12 14:49 -0800
Re: usecases of void foo(char **b) {} Tim Rentsch <txr@alumni.caltech.edu> - 2016-11-15 10:23 -0800
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-12 14:47 -0800
Re: usecases of void foo(char **b) {} Tim Rentsch <txr@alumni.caltech.edu> - 2016-11-15 10:05 -0800
Re: usecases of void foo(char **b) {} Jerry Stuckle <jstucklex@attglobal.net> - 2016-11-12 17:06 -0500
Re: usecases of void foo(char **b) {} Gareth Owen <gwowen@gmail.com> - 2016-11-02 19:35 +0000
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-11-01 13:12 -0700
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-01 13:37 -0700
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-01 09:45 -0700
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-10-31 18:33 +0000
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-10-31 11:41 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-10-31 18:51 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-01 08:43 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-01 16:14 +0000
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-10-31 16:04 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-10-31 16:22 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-10-31 23:45 +0000
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-10-31 16:58 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-10-31 17:11 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-01 01:27 +0000
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-01 02:31 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-01 02:41 -0700
Re: usecases of void foo(char **b) {} asetofsymbols@gmail.com - 2016-11-01 03:15 -0700
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-01 11:14 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-01 11:30 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-01 12:10 +0000
Re: usecases of void foo(char **b) {} Jerry Stuckle <jstucklex@attglobal.net> - 2016-11-01 11:23 -0400
Re: usecases of void foo(char **b) {} jameskuyper@verizon.net - 2016-11-01 09:33 -0700
Re: usecases of void foo(char **b) {} Jerry Stuckle <jstucklex@attglobal.net> - 2016-11-01 22:16 -0400
Re: usecases of void foo(char **b) {} jameskuyper@verizon.net - 2016-11-01 20:36 -0700
Re: usecases of void foo(char **b) {} Jerry Stuckle <jstucklex@attglobal.net> - 2016-11-02 09:20 -0400
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-02 09:02 -0700
Re: usecases of void foo(char **b) {} James Kuyper <jameskuyper@verizon.net> - 2016-11-03 22:09 -0400
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-01 17:37 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-01 11:59 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-01 05:51 -0700
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-01 06:26 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-01 07:32 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-01 15:37 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-01 08:50 -0700
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-01 09:05 -0700
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-01 17:48 +0000
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-01 12:38 -0700
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-01 22:55 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-02 00:04 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-02 02:06 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-02 10:05 +0000
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-11-02 08:07 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-02 08:45 -0700
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-02 09:17 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-02 19:10 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-02 12:55 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-02 20:13 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-02 13:37 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-02 19:18 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-02 13:04 -0700
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-02 20:54 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-02 22:31 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-02 23:53 +0000
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-03 08:41 -0700
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-11-02 14:05 -0700
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-02 16:17 -0700
Re: usecases of void foo(char **b) {} Ian Collins <ian-news@hotmail.com> - 2016-11-03 17:31 +1300
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-03 08:20 -0700
Re: usecases of void foo(char **b) {} Ian Collins <ian-news@hotmail.com> - 2016-11-04 07:59 +1300
Re: usecases of void foo(char **b) {} David Brown <david.brown@hesbynett.no> - 2016-11-04 09:53 +0100
Re: usecases of void foo(char **b) {} Ian Collins <ian-news@hotmail.com> - 2016-11-04 22:32 +1300
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-04 07:57 -0700
Re: usecases of void foo(char **b) {} David Brown <david.brown@hesbynett.no> - 2016-11-04 16:47 +0100
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-04 09:09 -0700
Re: usecases of void foo(char **b) {} David Brown <david.brown@hesbynett.no> - 2016-11-04 18:04 +0100
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-04 12:27 -0700
Re: usecases of void foo(char **b) {} David Brown <david.brown@hesbynett.no> - 2016-11-05 14:42 +0100
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-05 14:04 -0700
Re: usecases of void foo(char **b) {} David Brown <david.brown@hesbynett.no> - 2016-11-06 17:29 +0100
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-06 18:42 -0800
Re: usecases of void foo(char **b) {} Tim Rentsch <txr@alumni.caltech.edu> - 2016-11-15 10:51 -0800
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-15 12:16 -0800
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-15 12:34 -0800
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-15 13:27 -0800
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-15 13:43 -0800
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-15 14:02 -0800
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-15 15:01 -0800
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-15 16:00 -0800
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-15 17:06 -0800
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-15 22:49 -0800
Re: usecases of void foo(char **b) {} jameskuyper@verizon.net - 2016-11-16 04:30 -0800
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-16 08:37 -0800
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-16 09:34 -0800
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-16 09:49 -0800
Re: usecases of void foo(char **b) {} jameskuyper@verizon.net - 2016-11-16 10:27 -0800
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-17 13:03 -0800
Re: usecases of void foo(char **b) {} raltbos@xs4all.nl (Richard Bos) - 2016-11-18 09:08 +0000
Re: usecases of void foo(char **b) {} Tim Rentsch <txr@alumni.caltech.edu> - 2016-11-16 10:31 -0800
Re: usecases of void foo(char **b) {} Ian Collins <ian-news@hotmail.com> - 2016-11-05 08:14 +1300
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-02 21:43 +0000
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-02 16:16 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-03 00:05 +0000
Re: usecases of void foo(char **b) {} Gareth Owen <gwowen@gmail.com> - 2016-11-03 06:07 +0000
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-03 01:59 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-03 02:19 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-03 03:25 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-03 10:51 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-03 11:58 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-03 12:26 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-03 13:05 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-03 14:50 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-03 15:00 +0000
Re: usecases of void foo(char **b) {} David Brown <david.brown@hesbynett.no> - 2016-11-03 16:27 +0100
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-03 08:38 -0700
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-03 09:07 -0700
Re: usecases of void foo(char **b) {} David Brown <david.brown@hesbynett.no> - 2016-11-04 10:00 +0100
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-03 09:00 -0700
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-03 16:29 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-03 16:43 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-03 17:14 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-03 17:23 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-03 18:18 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-03 18:38 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-03 18:42 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-03 18:56 +0000
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-11-03 12:15 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-03 20:26 +0000
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-11-03 13:55 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-03 21:58 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-03 19:46 +0000
Re: usecases of void foo(char **b) {} "Mr. Man-wai Chang" <toylet.toylet@gmail.com> - 2016-11-04 02:46 +0800
[OT] "Mr. Man-wai Chang" <toylet.toylet@gmail.com> - 2016-11-04 11:59 +0800
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-03 12:14 -0700
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-03 15:27 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-03 08:45 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-03 16:33 +0000
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-03 09:57 -0700
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-03 12:12 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-04 02:02 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-04 11:15 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-04 12:12 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-04 13:52 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-04 15:28 +0000
Re: usecases of void foo(char **b) {} Gareth Owen <gwowen@gmail.com> - 2016-11-04 17:17 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-04 19:04 +0000
Re: usecases of void foo(char **b) {} Thiago Adams <thiago.adams@gmail.com> - 2016-11-04 12:34 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-04 20:20 +0000
Re: usecases of void foo(char **b) {} Gareth Owen <gwowen@gmail.com> - 2016-11-05 14:52 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-05 15:42 +0000
Re: usecases of void foo(char **b) {} jameskuyper@verizon.net - 2016-11-05 11:40 -0700
Re: usecases of void foo(char **b) {} Gareth Owen <gwowen@gmail.com> - 2016-11-05 21:24 +0000
Re: usecases of void foo(char **b) {} Gareth Owen <gwowen@gmail.com> - 2016-11-05 21:23 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-05 21:58 +0000
Re: usecases of void foo(char **b) {} jameskuyper@verizon.net - 2016-11-05 15:57 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-05 17:00 -0700
Re: usecases of void foo(char **b) {} Gareth Owen <gwowen@gmail.com> - 2016-11-06 19:59 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-04 17:48 +0000
Re: usecases of void foo(char **b) {} asetofsymbols@gmail.com - 2016-11-04 12:55 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-04 20:30 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-04 21:13 +0000
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-04 15:13 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-04 22:37 +0000
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-04 17:02 -0700
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-04 16:19 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-04 22:58 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-05 02:14 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-05 11:13 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-05 14:23 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-05 15:38 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-05 16:13 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-05 17:01 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-05 14:04 -0700
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-05 23:01 +0000
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-05 16:20 -0700
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-05 23:46 +0000
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-06 08:26 -0800
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-05 18:41 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-05 23:57 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-06 00:48 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-06 02:12 +0000
Re: usecases of void foo(char **b) {} Ian Collins <ian-news@hotmail.com> - 2016-11-06 16:52 +1300
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-06 12:02 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-06 11:02 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-06 11:45 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-06 12:51 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-06 14:19 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-06 14:49 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-06 15:49 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-06 15:57 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-06 16:31 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-06 17:40 +0000
Re: usecases of void foo(char **b) {} Thiago Adams <thiago.adams@gmail.com> - 2016-11-06 10:16 -0800
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-06 19:18 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-06 19:40 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-06 20:12 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-06 21:01 +0000
Re: usecases of void foo(char **b) {} Ian Collins <ian-news@hotmail.com> - 2016-11-07 20:42 +1300
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-07 08:17 +0000
Re: usecases of void foo(char **b) {} Ian Collins <ian-news@hotmail.com> - 2016-11-07 22:27 +1300
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-07 12:37 +0000
Re: usecases of void foo(char **b) {} Ian Collins <ian-news@hotmail.com> - 2016-11-08 11:12 +1300
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-08 00:09 +0000
Re: usecases of void foo(char **b) {} Ian Collins <ian-news@hotmail.com> - 2016-11-08 13:46 +1300
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-06 13:10 -0800
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-06 21:22 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-06 21:44 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-06 21:58 +0000
Re: usecases of void foo(char **b) {} jameskuyper@verizon.net - 2016-11-06 14:11 -0800
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-06 22:47 +0000
Re: usecases of void foo(char **b) {} "James R. Kuyper" <jameskuyper@verizon.net> - 2016-11-06 18:14 -0500
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-07 01:36 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-07 00:49 +0000
Re: usecases of void foo(char **b) {} "James R. Kuyper" <jameskuyper@verizon.net> - 2016-11-07 11:32 -0500
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-07 09:28 -0800
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-07 10:49 -0800
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-06 22:37 +0000
Re: usecases of void foo(char **b) {} jameskuyper@verizon.net - 2016-11-06 14:02 -0800
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-11-07 10:57 -0800
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-07 21:55 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-07 22:38 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-07 23:49 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-08 00:02 +0000
Re: usecases of void foo(char **b) {} "James R. Kuyper" <jameskuyper@verizon.net> - 2016-11-07 19:21 -0500
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-08 00:25 +0000
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-11-08 07:02 -0800
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-08 15:49 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-08 16:03 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-08 08:10 -0800
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-08 16:31 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-08 18:15 +0000
Re: usecases of void foo(char **b) {} Robert Wessel <robertwessel2@yahoo.com> - 2016-11-09 23:32 -0600
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-08 08:04 -0800
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-06 20:54 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-06 13:02 -0800
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-06 12:53 -0800
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-11-06 21:06 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-06 21:36 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-06 14:06 -0800
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-07 00:39 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-06 18:12 -0800
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-06 19:18 -0800
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-07 10:55 +0000
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-07 12:00 -0800
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-07 22:01 +0000
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-07 21:03 -0800
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-08 10:26 +0000
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-08 06:34 -0800
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-08 08:06 -0800
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-08 08:35 -0800
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-08 11:26 -0800
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-08 11:58 -0800
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-08 12:10 -0800
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-08 12:35 -0800
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-08 13:27 -0800
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-08 21:39 +0000
Re: usecases of void foo(char **b) {} supercat@casperkitty.com - 2016-11-08 13:55 -0800
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-08 16:44 -0800
Re: usecases of void foo(char **b) {} Gareth Owen <gwowen@gmail.com> - 2016-11-07 18:54 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-06 13:27 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-06 12:59 -0800
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-06 21:35 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-06 13:56 -0800
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-06 22:01 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-06 14:33 -0800
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-06 14:08 -0800
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-06 22:32 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-06 23:00 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-07 01:02 +0000
Re: usecases of void foo(char **b) {} Ian Collins <ian-news@hotmail.com> - 2016-11-05 12:16 +1300
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-05 01:32 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-04 19:13 -0700
Re: usecases of void foo(char **b) {} Ian Collins <ian-news@hotmail.com> - 2016-11-05 16:34 +1300
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-05 11:29 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-05 14:09 -0700
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-04 20:49 +0000
Re: usecases of void foo(char **b) {} asetofsymbols@gmail.com - 2016-11-05 02:06 -0700
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-04 09:05 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-04 17:05 +0000
Re: usecases of void foo(char **b) {} asetofsymbols@gmail.com - 2016-11-03 15:08 -0700
Re: usecases of void foo(char **b) {} Gareth Owen <gwowen@gmail.com> - 2016-11-03 20:21 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-03 20:35 +0000
Re: usecases of void foo(char **b) {} Gareth Owen <gwowen@gmail.com> - 2016-11-03 21:47 +0000
Re: usecases of void foo(char **b) {} Gareth Owen <gwowen@gmail.com> - 2016-11-03 21:48 +0000
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-11-03 08:02 -0700
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-03 18:09 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-03 18:48 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-03 19:53 +0000
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-03 20:52 +0000
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-03 23:09 +0000
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-11-04 07:08 -0700
Re: usecases of void foo(char **b) {} James Kuyper <jameskuyper@verizon.net> - 2016-11-03 22:24 -0400
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-01 11:50 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-11-01 16:28 +0000
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-01 05:07 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-01 05:18 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-01 05:30 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-11-01 05:38 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-10-31 16:47 -0700
Re: usecases of void foo(char **b) {} "Pascal J. Bourguignon" <pjb@informatimago.com> - 2016-11-05 04:11 +0100
Re: usecases of void foo(char **b) {} Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-11-05 10:48 +0000
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-05 14:06 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-10-31 17:38 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-10-31 17:44 +0000
Re: usecases of void foo(char **b) {} "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-10-31 11:04 -0700
Re: usecases of void foo(char **b) {} BartC <bc@freeuk.com> - 2016-10-31 19:12 +0000
Re: usecases of void foo(char **b) {} Richard Heathfield <rjh@cpax.org.uk> - 2016-10-31 19:18 +0000
Re: usecases of void foo(char **b) {} "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-10-31 10:53 -0700
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-11-01 08:25 -0700
Re: usecases of void foo(char **b) {} Keith Thompson <kst-u@mib.org> - 2016-10-31 08:05 -0700
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-10-31 08:27 -0700
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-10-31 07:59 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-10-31 10:36 -0700
Re: usecases of void foo(char **b) {} John Bode <jfbode1029@gmail.com> - 2016-10-31 11:36 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-10-31 12:12 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-10-31 12:59 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-10-31 13:27 -0700
Re: usecases of void foo(char **b) {} fir <profesor.fir@gmail.com> - 2016-10-31 13:40 -0700
Re: usecases of void foo(char **b) {} Thiago Adams <thiago.adams@gmail.com> - 2016-11-03 03:58 -0700
Page 11 of 21 — ← Prev page 1 … 9 10 [11] 12 13 … 21 Next page →
| From | BartC <bc@freeuk.com> |
|---|---|
| Date | 2016-11-03 12:26 +0000 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <nvfad9$15l$1@dont-email.me> |
| In reply to | #95641 |
On 03/11/2016 11:58, Richard Heathfield wrote:
> On 03/11/16 10:51, BartC wrote:
>> On 03/11/2016 06:07, Gareth Owen wrote:
>>> BartC <bc@freeuk.com> writes:
>>>
>>>> I am not however spreading disinformation just because my view of C is
>>>> wider than your narrow one.
>>>
>>> Have you considered, even for a second, the possibility that you might
>>> be wrong?
>>>
>>
>> Go back and show me what I said that was wrong.
>
> If you've already forgotten all the mistakes we've pointed out in your
> reasoning and in your understanding of C, then there's no point in
> showing you again,
The subthread started with Ben not believing that extra parentheses (a
consequence of "*" being a prefix op rather that a postfix one) was a
problem. [1-11-16 22:55 GMT].
Those extra parentheses appear, and for exactly that reason, when making
use of pointer-to-array. Yet pointer-to-array is rarely used in C,
despite some advantages.
A coincidence that an idiom that needs parentheses cluttering up the
code is less popular than one without? Or are they putting people off
thereby driving the way the language is used? ("p->" also seems more
popular than "(*p)." I notice...)
If that is the case they I'd say they were a problem because
pointer-to-array is a more direct and natural way of dealing with array
references than pointer-to-first-element-of-array.
That's all this is about. People don't need to get into Bible-bashing mode.
>> I implement the concept in other
>> languages and they work even better. I really doubt whether I'm wrong.
>
> Yes, I understand that you don't believe you're wrong.
What is it that I'm wrong about? I'd really like to know!
>> It seems the 'pointer to first element of array' idiom is so ingrained
>> with the regulars that the possibility of doing it any other way is
>> inconceivable.
>
> That depends on what "it" is. Pointers are often used for pointing to
> the first element of an array. They are also often used for other
> purposes. For example, they can be iterated through an array. Or they
> can be used to point at nodes in a graph. Or they can be used for
> pointing at individual objects or functions. So what do you mean by "it"?
Referring indirectly to an array. It would be more natural for the
address of my house to refer to the whole building than just the first
or ground floor.
--
Bartc
[toc] | [prev] | [next] | [standalone]
| From | Richard Heathfield <rjh@cpax.org.uk> |
|---|---|
| Date | 2016-11-03 13:05 +0000 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <nvfcme$922$1@dont-email.me> |
| In reply to | #95642 |
On 03/11/16 12:26, BartC wrote:
> On 03/11/2016 11:58, Richard Heathfield wrote:
>> On 03/11/16 10:51, BartC wrote:
>>> On 03/11/2016 06:07, Gareth Owen wrote:
>>>> BartC <bc@freeuk.com> writes:
>>>>
>>>>> I am not however spreading disinformation just because my view of C is
>>>>> wider than your narrow one.
>>>>
>>>> Have you considered, even for a second, the possibility that you might
>>>> be wrong?
>>>>
>>>
>>> Go back and show me what I said that was wrong.
>>
>> If you've already forgotten all the mistakes we've pointed out in your
>> reasoning and in your understanding of C, then there's no point in
>> showing you again,
>
> The subthread started with Ben not believing that extra parentheses (a
> consequence of "*" being a prefix op rather that a postfix one) was a
> problem. [1-11-16 22:55 GMT].
They're not a problem. They're a solution.
> Those extra parentheses appear, and for exactly that reason, when making
> use of pointer-to-array. Yet pointer-to-array is rarely used in C,
> despite some advantages.
I'd agree that pointer-to-array is rarely used in C (although rarely !=
never).
> A coincidence that an idiom that needs parentheses cluttering up the
> code is less popular than one without?
Who knows? Frankly, I can't think of a great many uses for a pointer to
an array, other than perhaps in qsort/bsearch.
> Or are they putting people off
> thereby driving the way the language is used? ("p->" also seems more
> popular than "(*p)." I notice...)
Of course it's more popular. It's prettier.
> If that is the case they I'd say they were a problem because
> pointer-to-array is a more direct and natural way of dealing with array
> references than pointer-to-first-element-of-array.
Not to a vast number of C programmers, it isn't.
> That's all this is about. People don't need to get into Bible-bashing mode.
I don't agree that that's an accurate characterisation of what's happening.
>>> I implement the concept in other
>>> languages and they work even better. I really doubt whether I'm wrong.
>>
>> Yes, I understand that you don't believe you're wrong.
>
> What is it that I'm wrong about? I'd really like to know!
For one thing, you're wrong in thinking that your constant carping on
about the flaws you perceive in C is a worthwhile subject for discussion
in this newsgroup. In a newsgroup devoted to language comparisons, it
might be. But here, it's just noise.
>>> It seems the 'pointer to first element of array' idiom is so ingrained
>>> with the regulars that the possibility of doing it any other way is
>>> inconceivable.
>>
>> That depends on what "it" is. Pointers are often used for pointing to
>> the first element of an array. They are also often used for other
>> purposes. For example, they can be iterated through an array. Or they
>> can be used to point at nodes in a graph. Or they can be used for
>> pointing at individual objects or functions. So what do you mean by "it"?
>
> Referring indirectly to an array. It would be more natural for the
> address of my house to refer to the whole building than just the first
> or ground floor.
Arrays are not houses, and houses are not arrays. If you must use the
house analogy (and it can be a good one, but I'm not sure it's helpful
in this case), the array is a /street/ of houses. The house is one
element in that array.
--
Richard Heathfield
Email: rjh at cpax dot org dot uk
"Usenet is a strange place" - dmr 29 July 1999
Sig line 4 vacant - apply within
[toc] | [prev] | [next] | [standalone]
| From | BartC <bc@freeuk.com> |
|---|---|
| Date | 2016-11-03 14:50 +0000 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <nvfir4$nc$1@dont-email.me> |
| In reply to | #95643 |
On 03/11/2016 13:05, Richard Heathfield wrote: > On 03/11/16 12:26, BartC wrote: >> The subthread started with Ben not believing that extra parentheses (a >> consequence of "*" being a prefix op rather that a postfix one) was a >> problem. [1-11-16 22:55 GMT]. > > They're not a problem. They're a solution. That's an interesting take on it. Perhaps then we didn't need all those difficult-to-remember operator precedences after all; we could just have solved the problem of precedence by using parentheses everywhere. -- Bartc
[toc] | [prev] | [next] | [standalone]
| From | Richard Heathfield <rjh@cpax.org.uk> |
|---|---|
| Date | 2016-11-03 15:00 +0000 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <nvfjdt$2v5$1@dont-email.me> |
| In reply to | #95646 |
On 03/11/16 14:50, BartC wrote:
> On 03/11/2016 13:05, Richard Heathfield wrote:
>> On 03/11/16 12:26, BartC wrote:
>
>>> The subthread started with Ben not believing that extra parentheses (a
>>> consequence of "*" being a prefix op rather that a postfix one) was a
>>> problem. [1-11-16 22:55 GMT].
>>
>> They're not a problem. They're a solution.
>
> That's an interesting take on it.
int *arr[6] = {0};
doesn't define a pointer to an array of 6 int, much as we might like it
to. So how do we define such a pointer? Ah!
int (*arr)[6] = {0};
Problem SOLVED. The parentheses are a solution.
> Perhaps then we didn't need all those difficult-to-remember operator
> precedences after all; we could just have solved the problem of
> precedence by using parentheses everywhere.
Yes, we could have done. As it turns out, though, we didn't.
Nevertheless, we do often use parentheses where, strictly, they are not
required. So, in a sense, we partly-solved the problem of precedence by
using parentheses in quite a few places.
C is C. WG14 is not about to change the syntax for your sake. Or for
mine. Or for anyone in this group. So what benefit do you gain from
moaning about it?
--
Richard Heathfield
Email: rjh at cpax dot org dot uk
"Usenet is a strange place" - dmr 29 July 1999
Sig line 4 vacant - apply within
[toc] | [prev] | [next] | [standalone]
| From | David Brown <david.brown@hesbynett.no> |
|---|---|
| Date | 2016-11-03 16:27 +0100 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <nvfl03$900$1@dont-email.me> |
| In reply to | #95646 |
On 03/11/16 15:50, BartC wrote:
> On 03/11/2016 13:05, Richard Heathfield wrote:
>> On 03/11/16 12:26, BartC wrote:
>
>>> The subthread started with Ben not believing that extra parentheses (a
>>> consequence of "*" being a prefix op rather that a postfix one) was a
>>> problem. [1-11-16 22:55 GMT].
>>
>> They're not a problem. They're a solution.
>
> That's an interesting take on it.
>
> Perhaps then we didn't need all those difficult-to-remember operator
> precedences after all; we could just have solved the problem of
> precedence by using parentheses everywhere.
>
Use parenthesis if they are needed, or if they make code clearer. Or
split things up - use extra typedefs to make your types clearer, and
extra local variables to make your expressions clearer.
You only need to deal with strange syntaxes, difficult-to-remember
operator precedences, complicated pointer and type arrangements, odd
parenthesis, etc., if you are looking at someone else's code. There is
no need for it in your own code.
If you don't like the C syntax for declaring a pointer to an array of
six integers:
int (*p1)[6];
then use typedefs:
typedef int array_of_6_ints_t[6];
array_of_6_ints_t * p2;
See? No parenthesis.
And if you want to make your arrays "more solid", so that you can pass
them around by value without any of this scary "pointer" stuff, you can
simply wrap them in a struct:
typedef struct {
int data[6];
} array2_t;
array2_t * p3;
C gives you plenty of options. It is up to /you/ if you choose to write
code that confuses you, or if you choose to get worked up about the
possibility that others might write code that you don't like.
[toc] | [prev] | [next] | [standalone]
| From | fir <profesor.fir@gmail.com> |
|---|---|
| Date | 2016-11-03 08:38 -0700 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <62c8681c-a49b-43cc-abf5-3d8d42fa0906@googlegroups.com> |
| In reply to | #95652 |
> > If you don't like the C syntax for declaring a pointer to an array of > six integers: > > int (*p1)[6]; > this is horrible syntax to be honest (sane wersion is what i said "int[6]* p;")
[toc] | [prev] | [next] | [standalone]
| From | Keith Thompson <kst-u@mib.org> |
|---|---|
| Date | 2016-11-03 09:07 -0700 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <lnk2ckzgwc.fsf@kst-u.example.com> |
| In reply to | #95652 |
David Brown <david.brown@hesbynett.no> writes:
[...]
> And if you want to make your arrays "more solid", so that you can pass
> them around by value without any of this scary "pointer" stuff, you can
> simply wrap them in a struct:
>
> typedef struct {
> int data[6];
> } array2_t;
> array2_t * p3;
Yes, you can do that -- but it limits you to fixed-length arrays. If
you want write a single function that can handle arrays of any arbitrary
length, you need to use pointers. You *can* use a pointer to an
incomplete array type, but a pointer to the element type is more
idiomatic and easier to work with.
[...]
--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
Working, but not speaking, for JetHead Development, Inc.
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
[toc] | [prev] | [next] | [standalone]
| From | David Brown <david.brown@hesbynett.no> |
|---|---|
| Date | 2016-11-04 10:00 +0100 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <nvhimm$ep0$1@dont-email.me> |
| In reply to | #95659 |
On 03/11/16 17:07, Keith Thompson wrote:
> David Brown <david.brown@hesbynett.no> writes:
> [...]
>> And if you want to make your arrays "more solid", so that you can pass
>> them around by value without any of this scary "pointer" stuff, you can
>> simply wrap them in a struct:
>>
>> typedef struct {
>> int data[6];
>> } array2_t;
>> array2_t * p3;
>
> Yes, you can do that -- but it limits you to fixed-length arrays. If
> you want write a single function that can handle arrays of any arbitrary
> length, you need to use pointers. You *can* use a pointer to an
> incomplete array type, but a pointer to the element type is more
> idiomatic and easier to work with.
>
Yes, that is correct.
In my type of programming, I usually /do/ know exactly how long my
arrays will be - as I greatly prefer them to be statically allocated
rather than dynamically allocated, pre-determined sizes are a necessity.
(For small systems embedded programming you normally try to avoid
dynamic memory for a number of reasons.)
I don't always wrap my arrays in a struct like that, but sometimes it is
a useful idea, and it lets you treat them as single objects with regard
to pointers, parameter passing, sizeof, etc.
Pointers to the element type are the usual practice for arbitrary sized
arrays, and usually also for plain (not wrapped in a struct) arrays of
known fixed sizes.
[toc] | [prev] | [next] | [standalone]
| From | supercat@casperkitty.com |
|---|---|
| Date | 2016-11-03 09:00 -0700 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <9bdd25b5-8462-4783-b410-4bbd69c9913d@googlegroups.com> |
| In reply to | #95643 |
On Thursday, November 3, 2016 at 8:05:54 AM UTC-5, Richard Heathfield wrote: > On 03/11/16 12:26, BartC wrote: > > The subthread started with Ben not believing that extra parentheses (a > > consequence of "*" being a prefix op rather that a postfix one) was a > > problem. [1-11-16 22:55 GMT]. > > They're not a problem. They're a solution. A "solution" which wouldn't be needed if the syntax didn't create a "problem" that needed to be solved. In Pascal as commonly extended (I think UCSD, Turbo Pascal (PC), and both Think and Macintosh Mascal (Macintosh) all allow this), the syntax: Dim X as Array[0..5,0..6] of Array[0..1] of ^Array[0..5] of Integer; makes it very clear that it is defining a 6x7 array of 2-item arrays of pointers to 6-item arrays of integer. No need for parentheses, no matter how complex the levels of indirection. An expression to access something from that would be X[a,b][c]^[d]. Again, no parentheses needed.
[toc] | [prev] | [next] | [standalone]
| From | Richard Heathfield <rjh@cpax.org.uk> |
|---|---|
| Date | 2016-11-03 16:29 +0000 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <nvfojs$mvq$1@dont-email.me> |
| In reply to | #95657 |
On 03/11/16 16:00, supercat@casperkitty.com wrote: > On Thursday, November 3, 2016 at 8:05:54 AM UTC-5, Richard Heathfield wrote: >> On 03/11/16 12:26, BartC wrote: >>> The subthread started with Ben not believing that extra parentheses (a >>> consequence of "*" being a prefix op rather that a postfix one) was a >>> problem. [1-11-16 22:55 GMT]. >> >> They're not a problem. They're a solution. > > A "solution" which wouldn't be needed if the syntax didn't create a "problem" > that needed to be solved. > > In Pascal as commonly extended (I think UCSD, Turbo Pascal (PC), and both > Think and Macintosh Mascal (Macintosh) all allow this), the syntax: > > Dim X as Array[0..5,0..6] of Array[0..1] of ^Array[0..5] of Integer; > > makes it very clear that it is defining a 6x7 array of 2-item arrays of > pointers to 6-item arrays of integer. Very clear indeed. What was it again? And what were you planning to use it for? It's so utterly contrived an example. -- Richard Heathfield Email: rjh at cpax dot org dot uk "Usenet is a strange place" - dmr 29 July 1999 Sig line 4 vacant - apply within
[toc] | [prev] | [next] | [standalone]
| From | BartC <bc@freeuk.com> |
|---|---|
| Date | 2016-11-03 16:43 +0000 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <nvfpe7$q82$1@dont-email.me> |
| In reply to | #95661 |
On 03/11/2016 16:29, Richard Heathfield wrote: > On 03/11/16 16:00, supercat@casperkitty.com wrote: >> On Thursday, November 3, 2016 at 8:05:54 AM UTC-5, Richard Heathfield >> wrote: >>> On 03/11/16 12:26, BartC wrote: >>>> The subthread started with Ben not believing that extra parentheses (a >>>> consequence of "*" being a prefix op rather that a postfix one) was a >>>> problem. [1-11-16 22:55 GMT]. >>> >>> They're not a problem. They're a solution. >> >> A "solution" which wouldn't be needed if the syntax didn't create a >> "problem" >> that needed to be solved. >> >> In Pascal as commonly extended (I think UCSD, Turbo Pascal (PC), and both >> Think and Macintosh Mascal (Macintosh) all allow this), the syntax: >> >> Dim X as Array[0..5,0..6] of Array[0..1] of ^Array[0..5] of Integer; >> >> makes it very clear that it is defining a 6x7 array of 2-item arrays of >> pointers to 6-item arrays of integer. > > Very clear indeed. What was it again? And what were you planning to use > it for? It's so utterly contrived an example. It doesn't matter what it is. You can just read it. Like reading something in English without using a translator or having to learn a new language. It's "array 6 of array 7 of array 2 of pointer array 6 of integer", applying a superficial conversion to Cdecl lingo. I'd write it in one of my languages (but keeping 1-based) as: [6,7,2]ref[6]int X In C of course it would be: int X ... [6][7][2] actually I don't know. And as my dinner is getting cold I won't drag out Cdecl to help out... But I just remembered my language can do the translation to C from the above. It gives me: int (*X[6][7][2])[6]; Easy - if you use an extra tool to do the work. But languages shouldn't require that. -- Bartc
[toc] | [prev] | [next] | [standalone]
| From | Richard Heathfield <rjh@cpax.org.uk> |
|---|---|
| Date | 2016-11-03 17:14 +0000 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <nvfr8o$ps$1@dont-email.me> |
| In reply to | #95664 |
On 03/11/16 16:43, BartC wrote: > On 03/11/2016 16:29, Richard Heathfield wrote: >> On 03/11/16 16:00, supercat@casperkitty.com wrote: >>> On Thursday, November 3, 2016 at 8:05:54 AM UTC-5, Richard Heathfield >>> wrote: >>>> On 03/11/16 12:26, BartC wrote: >>>>> The subthread started with Ben not believing that extra parentheses (a >>>>> consequence of "*" being a prefix op rather that a postfix one) was a >>>>> problem. [1-11-16 22:55 GMT]. >>>> >>>> They're not a problem. They're a solution. >>> >>> A "solution" which wouldn't be needed if the syntax didn't create a >>> "problem" >>> that needed to be solved. >>> >>> In Pascal as commonly extended (I think UCSD, Turbo Pascal (PC), and >>> both >>> Think and Macintosh Mascal (Macintosh) all allow this), the syntax: >>> >>> Dim X as Array[0..5,0..6] of Array[0..1] of ^Array[0..5] of Integer; >>> >>> makes it very clear that it is defining a 6x7 array of 2-item arrays of >>> pointers to 6-item arrays of integer. >> >> Very clear indeed. What was it again? And what were you planning to use >> it for? It's so utterly contrived an example. > > It doesn't matter what it is. You can just read it. Like reading > something in English without using a translator or having to learn a new > language. Actually, I couldn't read it, and needed supercat's translation in order to understand it. But if you /can/ read it and if you prefer it, great! Use Pascal instead of C. -- Richard Heathfield Email: rjh at cpax dot org dot uk "Usenet is a strange place" - dmr 29 July 1999 Sig line 4 vacant - apply within
[toc] | [prev] | [next] | [standalone]
| From | BartC <bc@freeuk.com> |
|---|---|
| Date | 2016-11-03 17:23 +0000 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <nvfrq6$45d$1@dont-email.me> |
| In reply to | #95667 |
On 03/11/2016 17:14, Richard Heathfield wrote: > On 03/11/16 16:43, BartC wrote: >> It doesn't matter what it is. You can just read it. Like reading >> something in English without using a translator or having to learn a new >> language. > > Actually, I couldn't read it, and needed supercat's translation in order > to understand it. I don't believe you. "Array[0..5] of Integer"? Come on! The big difference from C is that a declaration is linear; it's not nested like an expression, requiring to jump forwards and backwards within it, and with the name of whatever is being declared buried somewhere inside. THAT is what makes C hard; take that away and you can usually figure out whatever syntax is being used. -- Bartc
[toc] | [prev] | [next] | [standalone]
| From | Richard Heathfield <rjh@cpax.org.uk> |
|---|---|
| Date | 2016-11-03 18:18 +0000 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <nvfv1o$grg$1@dont-email.me> |
| In reply to | #95668 |
On 03/11/16 17:23, BartC wrote:
> On 03/11/2016 17:14, Richard Heathfield wrote:
>> On 03/11/16 16:43, BartC wrote:
>
>>> It doesn't matter what it is. You can just read it. Like reading
>>> something in English without using a translator or having to learn a new
>>> language.
>>
>> Actually, I couldn't read it, and needed supercat's translation in order
>> to understand it.
>
> I don't believe you.
That is your prerogative.
> "Array[0..5] of Integer"? Come on!
That bit was clear enough. It was the expression as a whole that I could
not read, in the sense of knowing precisely what it meant. Of course, it
was possible to follow it by taking advantage of supercat's primer.
> The big difference from C is that a declaration is linear; it's not
> nested like an expression, requiring to jump forwards and backwards
> within it, and with the name of whatever is being declared buried
> somewhere inside.
>
> THAT is what makes C hard; take that away and you can usually figure out
> whatever syntax is being used.
I can generally figure out a C declaration anyway. The way to do it is
to read it boustrophedonically.
Consider one of the declarations on your favourite page of K&R2:
char (*(*x[3])())[5]
I'm going to show you how to decode this in an extraordinarily simple
way. It is of course not going to convince you of anything. I do realise
that. You'll think it's ridiculous. But <shrug>. I'm going to show you
anyway because this is Usenet, not email, and there may well be people
reading this article who will benefit from the explanation, even if you
are determined not to.
I hope (but do not trust) that Usenet will preserve the spacing
correctly. Use a fixed-pitch font (or "Show Original" in GG).
^ = up, > = right, V = down, < = left
Start with the declaration, and then spiral clockwise, starting by going
up (or, in the southern hemisphere, spiral anticlockwise and start by
going down):
>>>>V
^ V
char (* (* x [3]) ( ) ) [5]
We have spiraled from the x to the [3], so:
"x is an array 3 of"
>>>>V
^ V
char (* (* x [3]) ( ) ) [5]
^ V
^<<<<<<<
We have spiraled from the [3] to the * (pointer), so:
"x is an array 3 of pointers to"
>>>>>>>>>>>>V
^ V
^ >>>>V V
^ ^ V V
char (* (* x [3]) ( ) ) [5]
^ V
^<<<<<<<
We have spiraled from the * to the () - a function, so:
"x is an array 3 of pointers to function returning"
>>>>>>>>>>>>V
^ V
^ >>>>V V
^ ^ V V
char (* (* x [3]) ( ) ) [5]
^ ^ V V
^ ^<<<<<<< V
^ V
^<<<<<<<<<<<<<<<<
We have spiraled from the () to the * - a pointer, so:
"x is an array 3 of pointers to function returning a pointer to"
>>>>>>>>>>>>>>>>>>>>>>>V
^ V
^ >>>>>>>>>>>>V V
^ ^ V V
^ ^ >>>>V V V
^ ^ ^ V V V
char (* (* x [3]) ( ) ) [5]
^ ^ V V
^ ^<<<<<<< V
^ V
^<<<<<<<<<<<<<<<<
We have spiraled from the * to the [5], so:
"x is an array 3 of pointers to function returning a pointer to an array
5 of"
>>>>>>>>>>>>>>>>>>>>>>>V
^ V
^ >>>>>>>>>>>>V V
^ ^ V V
^ ^ >>>>V V V
^ ^ ^ V V V
char (* (* x [3]) ( ) ) [5]
^ ^ ^ V V V
^ ^ ^<<<<<<< V V
^ ^ V V
^ ^<<<<<<<<<<<<<<<< V
^ V
^<<<<<<<<<<<<<<<<<<<<<<<<<<<<
We have spiraled from the [5] to the char, so:
"x is an array 3 of pointers to function returning a pointer to an array
5 of char"
and we're done. The only caveat is that you need to keep your spiral
inside any parentheses until everything in them has been dealt with, so
that you correctly distinguish between, for example:
int (*x)[6] (deal with the * first)
and
int *x[6] (deal with the [6] first).
Linear it isn't. But there is still a very, very strong pattern that you
can use to decipher any declaration.
--
Richard Heathfield
Email: rjh at cpax dot org dot uk
"Usenet is a strange place" - dmr 29 July 1999
Sig line 4 vacant - apply within
[toc] | [prev] | [next] | [standalone]
| From | BartC <bc@freeuk.com> |
|---|---|
| Date | 2016-11-03 18:38 +0000 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <nvg072$lcq$1@dont-email.me> |
| In reply to | #95672 |
On 03/11/2016 18:18, Richard Heathfield wrote: > Consider one of the declarations on your favourite page of K&R2: > > char (*(*x[3])())[5] > > I'm going to show you how to decode this in an extraordinarily simple > way. It is of course not going to convince you of anything. Well, it's not 'extraordinarily simple'. That description is reserved for K&R's English translation of it. > Start with the declaration, and then spiral clockwise, starting by going > up (or, in the southern hemisphere, spiral anticlockwise and start by > going down): > > >>>>V > ^ V > char (* (* x [3]) ( ) ) [5] Some beautiful-looking ASCII art. But, what happens above where there is no name in the declaration? As in: (char (*(*[3])())[5]) -- Bartc
[toc] | [prev] | [next] | [standalone]
| From | Richard Heathfield <rjh@cpax.org.uk> |
|---|---|
| Date | 2016-11-03 18:42 +0000 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <nvg0ei$lvn$1@dont-email.me> |
| In reply to | #95677 |
On 03/11/16 18:38, BartC wrote: > On 03/11/2016 18:18, Richard Heathfield wrote: > >> Consider one of the declarations on your favourite page of K&R2: >> >> char (*(*x[3])())[5] >> >> I'm going to show you how to decode this in an extraordinarily simple >> way. It is of course not going to convince you of anything. > > Well, it's not 'extraordinarily simple'. Told you so. > That description is reserved > for K&R's English translation of it. > >> Start with the declaration, and then spiral clockwise, starting by going >> up (or, in the southern hemisphere, spiral anticlockwise and start by >> going down): >> >> >>>>V >> ^ V >> char (* (* x [3]) ( ) ) [5] > > > Some beautiful-looking ASCII art. But, what happens above where there is > no name in the declaration? As in: > > (char (*(*[3])())[5]) Easy. It doesn't compile. -- Richard Heathfield Email: rjh at cpax dot org dot uk "Usenet is a strange place" - dmr 29 July 1999 Sig line 4 vacant - apply within
[toc] | [prev] | [next] | [standalone]
| From | BartC <bc@freeuk.com> |
|---|---|
| Date | 2016-11-03 18:56 +0000 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <nvg18d$pa9$1@dont-email.me> |
| In reply to | #95678 |
On 03/11/2016 18:42, Richard Heathfield wrote: > On 03/11/16 18:38, BartC wrote: >> On 03/11/2016 18:18, Richard Heathfield wrote: >>> >>>>V >>> ^ V >>> char (* (* x [3]) ( ) ) [5] >> >> >> Some beautiful-looking ASCII art. But, what happens above where there is >> no name in the declaration? As in: >> >> (char (*(*[3])())[5]) > > Easy. It doesn't compile. Are you sure? Try this: sizeof (char (*(*[3])())[5]); (Although it is true that that /particular/ example can't be used as a cast, and presumably not as an unnamed function parameter, because it apparently declares an array. Other complex but unnamed declarations can be.) -- Bartc
[toc] | [prev] | [next] | [standalone]
| From | John Bode <jfbode1029@gmail.com> |
|---|---|
| Date | 2016-11-03 12:15 -0700 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <7f629e4a-a3ab-49be-b4b3-84df8e4764a0@googlegroups.com> |
| In reply to | #95677 |
On Thursday, November 3, 2016 at 1:38:59 PM UTC-5, Bart wrote: > On 03/11/2016 18:18, Richard Heathfield wrote: > > > Consider one of the declarations on your favourite page of K&R2: > > > > char (*(*x[3])())[5] > > > > I'm going to show you how to decode this in an extraordinarily simple > > way. It is of course not going to convince you of anything. > > Well, it's not 'extraordinarily simple'. That description is reserved > for K&R's English translation of it. > > > Start with the declaration, and then spiral clockwise, starting by going > > up (or, in the southern hemisphere, spiral anticlockwise and start by > > going down): > > > > >>>>V > > ^ V > > char (* (* x [3]) ( ) ) [5] > > > Some beautiful-looking ASCII art. But, what happens above where there is > no name in the declaration? As in: > > (char (*(*[3])())[5]) > The rules are exactly the same - *[3] is parsed the same way *x[3] is, as an unnamed 3-element array of pointer. If you see (*)[3], then its an unnamed pointer to 3-element array. *() is an unnamed function returning a pointer, and (*)() is a pointer to an unnamed function. To pound on this again some more, once you internalize the rules, it gets easy to read C declaration syntax. It really, really does. C's declarator syntax is baroque, but once you learn how it works it's actually kind of neat, and packs a lot of information into a small space. IT WOULD HAVE BEEN NICE if dmr had made the dereference operator postfix instead of prefix, but he didn't, so yay spiral rule.
[toc] | [prev] | [next] | [standalone]
| From | BartC <bc@freeuk.com> |
|---|---|
| Date | 2016-11-03 20:26 +0000 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <nvg6gl$efv$1@dont-email.me> |
| In reply to | #95686 |
On 03/11/2016 19:15, John Bode wrote:
> On Thursday, November 3, 2016 at 1:38:59 PM UTC-5, Bart wrote:
>> On 03/11/2016 18:18, Richard Heathfield wrote:
>>
>>> Consider one of the declarations on your favourite page of K&R2:
>>>
>>> char (*(*x[3])())[5]
>>>
>>> I'm going to show you how to decode this in an extraordinarily simple
>>> way. It is of course not going to convince you of anything.
>>
>> Well, it's not 'extraordinarily simple'. That description is reserved
>> for K&R's English translation of it.
>>
>>> Start with the declaration, and then spiral clockwise, starting by going
>>> up (or, in the southern hemisphere, spiral anticlockwise and start by
>>> going down):
>>>
>>> >>>>V
>>> ^ V
>>> char (* (* x [3]) ( ) ) [5]
>>
>>
>> Some beautiful-looking ASCII art. But, what happens above where there is
>> no name in the declaration? As in:
>>
>> (char (*(*[3])())[5])
>>
>
> The rules are exactly the same - *[3] is ...
How do you know that that is the start point? Another algorithm to
execute first?
That was a nonsense type-spec, this is a real one (translated to C):
pcptr = (*(int * (**) (void))pcptr)();
This includes an assignment, dereference, cast and function call, but
which bit is which?
The original language also uses 4 parentheses to C's 10. (It also used 2
function dereferences, but only one appears here, due to a C quirk where
you can leave out one dereference.)
However much you try and dress it up, complex C type just aren't very
friendly.
--
Bartc
[toc] | [prev] | [next] | [standalone]
| From | John Bode <jfbode1029@gmail.com> |
|---|---|
| Date | 2016-11-03 13:55 -0700 |
| Subject | Re: usecases of void foo(char **b) {} |
| Message-ID | <35c56dde-ed8c-48b1-b054-b224143ca844@googlegroups.com> |
| In reply to | #95692 |
On Thursday, November 3, 2016 at 3:26:33 PM UTC-5, Bart wrote: > On 03/11/2016 19:15, John Bode wrote: > > On Thursday, November 3, 2016 at 1:38:59 PM UTC-5, Bart wrote: > >> On 03/11/2016 18:18, Richard Heathfield wrote: > >> > >>> Consider one of the declarations on your favourite page of K&R2: > >>> > >>> char (*(*x[3])())[5] > >>> > >>> I'm going to show you how to decode this in an extraordinarily simple > >>> way. It is of course not going to convince you of anything. > >> > >> Well, it's not 'extraordinarily simple'. That description is reserved > >> for K&R's English translation of it. > >> > >>> Start with the declaration, and then spiral clockwise, starting by going > >>> up (or, in the southern hemisphere, spiral anticlockwise and start by > >>> going down): > >>> > >>> >>>>V > >>> ^ V > >>> char (* (* x [3]) ( ) ) [5] > >> > >> > >> Some beautiful-looking ASCII art. But, what happens above where there is > >> no name in the declaration? As in: > >> > >> (char (*(*[3])())[5]) > >> > > > > The rules are exactly the same - *[3] is ... > > How do you know that that is the start point? Another algorithm to > execute first? Familiarity with the syntax. > > That was a nonsense type-spec, this is a real one (translated to C): > > pcptr = (*(int * (**) (void))pcptr)(); > > This includes an assignment, dereference, cast and function call, but > which bit is which? (int *(**)(void)) pcptr is the cast operation. It casts pcptr to type pointer to pointer to function taking void and returning pointer to int. *(int *(**)(void)) pcptr is the dereference. The result of the dereference is a pointer to a function taking void and returning pointer to int. (*(int *(**)(void)) pcptr)() is the function call, executed via the pointer value evaluated above. pcptr = (*(int *(**)(void))pcptr)() is the assignment. Not sure about the validity of it, though - are we treating pcptr as both a pointer to an int and a pointer to a function? That seems...wrong, somehow. > > The original language also uses 4 parentheses to C's 10. (It also used 2 > function dereferences, but only one appears here, due to a C quirk where > you can leave out one dereference.) > > However much you try and dress it up, complex C type just aren't very > friendly. > Neither is Japanese to a native English speaker. The vocabulary is alien, the grammar is weird, and there are three different, completely alien orthographies you have to learn. Obviously, no native English speaker can ever learn to read or speak Japanese fluently.
[toc] | [prev] | [next] | [standalone]
Page 11 of 21 — ← Prev page 1 … 9 10 [11] 12 13 … 21 Next page →
Back to top | Article view | comp.lang.c
csiph-web