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


Groups > comp.lang.c > #18022

Re: Evaluation Order in Function Declaration

From Kaz Kylheku <kaz@kylheku.com>
Newsgroups comp.lang.c
Subject Re: Evaluation Order in Function Declaration
Date 2012-02-28 09:31 +0000
Organization Aioe.org NNTP Server
Message-ID <20120228010002.781@kylheku.com> (permalink)
References <jihoad$2pj$1@dont-email.me> <4F4C9B12.8060507@loria.fr>

Show all headers | View raw


On 2012-02-28, Jens Gustedt <jens.gustedt@loria.fr> wrote:
> Hello,
>
> Am 02/28/2012 06:22 AM, schrieb Shao Miller:
>> Is the evaluation order guaranteed to be left-to-right for the
>> declaration of 'baz' in the following code?  Or are the array size
>> expressions unsequenced relative to one another, as in 'a + b'?  Or
>> something else?
>> 
>>   #include <stdio.h>
>> 
>>   int foo(void) { puts("foo"); return 1; }
>>   int bar(void) { puts("bar"); return 1; }
>> 
>>   int baz(int (* x)[foo()], int (* y)[bar()]) { return 0; }
>> 
>>   int main(void) { return baz(0, 0); }
>
> Yes, not only that it is left to right, you are even allowed to use each
> of the preceding identifiers in the expressions. Otherwise things like
>
> double sum(size_t n, size_t m, double A[n][m]) { ... }
>
> could never work reliably.

Sure they could. The above could mean that A[n][m], n and m independently
receive values from the same sources (the argument expressions). The [n][m]
doesn't have to refer to the values stored in the parameters n, and m
but rather the [n][m] can indicate additional sinks for the data flows
emanating from argument 1 and 2.

Such semantics can be hammered out.  There is no end to how you can lay weasely
traps for the programmer (as the sordid history of this language shows.)

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


Thread

Evaluation Order in Function Declaration Shao Miller <sha0.miller@gmail.com> - 2012-02-28 00:22 -0500
  Re: Evaluation Order in Function Declaration Jens Gustedt <jens.gustedt@loria.fr> - 2012-02-28 10:14 +0100
    Re: Evaluation Order in Function Declaration Kaz Kylheku <kaz@kylheku.com> - 2012-02-28 09:31 +0000
      Re: Evaluation Order in Function Declaration Jens Gustedt <jens.gustedt@loria.fr> - 2012-02-28 13:09 +0100
  Re: Evaluation Order in Function Declaration pete <pfiland@mindspring.com> - 2012-03-08 08:49 -0500

csiph-web