Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #73234

Re: Pointers, constant values

From Ben Bacarisse <ben.usenet@bsb.me.uk>
Newsgroups comp.lang.c
Subject Re: Pointers, constant values
Date 2015-10-18 21:54 +0100
Organization A noiseless patient Spider
Message-ID <8737x7nbht.fsf@bsb.me.uk> (permalink)
References (11 earlier) <87mvvhnxun.fsf@bsb.me.uk> <mvuf8g$c1i$1@dont-email.me> <6490f27e-dd45-4b1c-aabf-8e10d044ddc2@googlegroups.com> <876124o3ct.fsf@bsb.me.uk> <3e57e99e-ea52-40b1-b491-bed7ab4823a5@googlegroups.com>

Show all headers | View raw


Malcolm McLean <malcolm.mclean5@btinternet.com> writes:

> On Sunday, October 18, 2015 at 11:53:03 AM UTC+1, Ben Bacarisse wrote:
>> supercat@casperkitty.com writes:
>> <snip>
>> > For example, in some kinds of code there is a very common idiom where
>> > a function which may or may not need to be given an array by its caller
>> > accepts a arguments for the base pointer and size, but promises to ignore
>> > the passed-in pointer if the size is zero.  While the declaration:
>> >
>> >     void processCommand(int command, char (*dat)[size], int size);
>> 
>> The size parameter must come before the parameter that refers to it.
>> 
>> > would be valid in C99, a compiler would be entitled to assume that the
>> > function could never be invoked when "size" has a value of zero --an
>> > assumption which would contradict what might well be the most common usage
>> > case.
>> 
>> What use-case do you have in mind?  The most common use I've seen of
>> this pattern is in numerical work for passing a 2D arrays with a
>> run-time "stride".  In those cases, pointers to zero-length arrays are
>> not common (nor are they particularly useful degenerate cases).
>> 
> In the case given, the function is obviously some sort of message
> handler, probably designed to be passed in by indirection and used as
> a callback.

Not, it seems, according to its author.  But if you've got a use-case
for it, that will help...

> To allow for a fast switch on the message type, it's an integer, and to allow for
> extension, the caller can attach arbitrary data in the form of a
> string.

But what about the parts that matter -- the pointer to array type and
the variable length array type haveing size zero.  How does your context
make that (a) a reasonable API choice and (b) a most common usage case?

> As it happens,
> I was designing exactly such a system literally yesterday.

And you wanted to use VLA parameters, but you found that the size being
zero was a common case so you could not do it that way?  If not, what is
the relevance to my question?

<snip>
-- 
Ben.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Pointers, constant values Alla _ <modelling.data@gmail.com> - 2015-10-16 00:49 -0700
  Re: Pointers, constant values Philip Lantz <prl@canterey.us> - 2015-10-16 01:49 -0700
  Re: Pointers, constant values James Kuyper <jameskuyper@verizon.net> - 2015-10-16 09:41 -0400
    Re: Pointers, constant values supercat@casperkitty.com - 2015-10-16 08:55 -0700
  Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 08:25 -0700
    Re: Pointers, constant values supercat@casperkitty.com - 2015-10-16 09:11 -0700
      Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 12:06 -0700
        Re: Pointers, constant values supercat@casperkitty.com - 2015-10-16 12:55 -0700
    Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-16 17:49 +0100
      Re: Pointers, constant values Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2015-10-16 13:23 -0400
        Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-16 19:34 +0100
          Re: Pointers, constant values supercat@casperkitty.com - 2015-10-16 12:05 -0700
        Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 12:18 -0700
      Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 12:13 -0700
        Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-16 20:33 +0100
          Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 13:01 -0700
            Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-16 21:09 +0100
              Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 13:41 -0700
          Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-16 21:07 +0100
            Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-16 21:20 +0100
              Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-16 22:02 +0100
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-16 22:21 +0100
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-16 14:39 -0700
                Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 15:26 -0700
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-16 15:44 -0700
                Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 16:58 -0700
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-16 17:28 -0700
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-16 22:50 +0100
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-16 15:14 -0700
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-17 01:23 +0100
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-17 19:39 +0100
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-17 22:42 +0100
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-18 00:31 +0100
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-18 02:11 +0100
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-18 11:59 +0100
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-18 12:12 +0100
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-18 12:28 +0100
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-18 23:16 +0100
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-18 23:34 +0100
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-19 01:45 +0100
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-19 11:51 +0100
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-19 12:55 +0100
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-19 13:51 +0100
                Re: Pointers, constant values Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-10-19 06:02 -0700
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-19 07:02 -0700
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-19 15:39 +0100
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-19 08:54 -0700
                Re: Pointers, constant values Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-10-19 09:14 -0700
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-19 10:21 -0700
                Re: Pointers, constant values Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-10-19 12:57 -0700
                Re: Pointers, constant values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-19 21:20 +0000
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-20 20:50 -0700
                Re: Pointers, constant values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-21 04:58 +0000
                Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-19 08:40 -0700
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-19 20:17 +0100
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-17 16:44 -0700
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-18 11:52 +0100
                Re: Pointers, constant values Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-10-18 05:15 -0700
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-18 21:54 +0100
                Re: Pointers, constant values Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-10-18 16:09 -0700
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-18 07:55 -0700
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-18 21:47 +0100
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-18 15:37 -0700
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-19 00:10 +0100
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-18 19:04 -0700
        Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-16 21:13 +0100
      Re: Pointers, constant values Ian Collins <ian-news@hotmail.com> - 2015-10-17 11:27 +1300
        Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-17 00:56 +0100
  Re: Pointers, constant values Les Cargill <lcargill99@comcast.com> - 2015-10-16 12:37 -0500
    Re: Pointers, constant values James Kuyper <jameskuyper@verizon.net> - 2015-10-16 14:22 -0400
  Re: Pointers, constant values Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-10-16 18:57 +0000
    Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-16 20:40 +0100
      Re: Pointers, constant values Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-10-16 20:46 +0000
        Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 14:24 -0700
          Re: Pointers, constant values Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-10-19 12:43 +0000
  Re: Pointers, constant values Siri Cruz <chine.bleu@yahoo.com> - 2015-10-16 13:20 -0700
    Re: Pointers, constant values supercat@casperkitty.com - 2015-10-17 13:59 -0700

csiph-web