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


Groups > comp.lang.c > #103582

Re: C Names and Scopes

From BartC <bc@freeuk.com>
Newsgroups comp.lang.c
Subject Re: C Names and Scopes
Date 2017-02-10 00:19 +0000
Organization A noiseless patient Spider
Message-ID <o7j0rh$h2e$1@dont-email.me> (permalink)
References <o7duoo$vmp$1@dont-email.me> <o7iddv$55j$1@dont-email.me> <87vasj5efl.fsf@bsb.me.uk> <o7isn9$51m$1@dont-email.me> <87efz75435.fsf@bsb.me.uk>

Show all headers | View raw


On 09/02/2017 23:36, Ben Bacarisse wrote:
> BartC <bc@freeuk.com> writes:

>>  int fn (int (((T))));
>>
>> This is a function with an int parameter called T. But if a
>> declaration like this is visible:
>>
>>  typedef double T;
>>
>> then that parameter becomes some sort of function or pointer to
>> function,
>
> It's a function type and you know what happens to those in parameter
> lists.

Um... no? Is it the same sort of thing goes on with array types? An 
actual array or function can't be passed, so it's converted (T[] to *T, 
function to pointer-to-function presumably).

It doesn't look like a pointer, but compilers report it as a pointer (if 
they detect it at all that is!); eg:

typedef double T;

int fn(int (((T))));

int main(void){
   fn(10);
}

Pelles C: error: expected int __cdecl (*)(double)...
lccwin:   error: expected pointer to to int function(double)
DMC:      no error or warning
gcc:      warning: expected int(*)(T)
Tiny C:   no error or warning
MSVC:     error: syntax problem to do with ) and {

(And the bad design problem is this: a function taking a int parameter 
expressed as above works perfectly well. Until something is introduced 
later, perhaps in an included header, that defines a typedef with a name 
matching the parameter. Now the meaning changes. But with certain 
compilers, you won't know.

With the designs I do, that doesn't arise because a function pointer 
type (function types are impossible to declare) always involves the 
keyword 'function' or 'proc'. It makes parsing foolproof, and it's 
helpful for humans too!)

>> and doesn't have a name. But you don't know that until
>> you're N levels deep in parentheses.
>
> You just throw them away.

Yes, but I was hoping to know earlier on if something was a function 
type and whether parameters were named.

-- 
Bartc

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


Thread

C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 02:13 +0000
  Re: C Names and Scopes David Brown <david.brown@hesbynett.no> - 2017-02-08 10:09 +0100
    Re: C Names and Scopes mark.bluemel@gmail.com - 2017-02-08 02:37 -0800
      Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 11:07 +0000
        Re: C Names and Scopes fir <profesor.fir@gmail.com> - 2017-02-08 09:03 -0800
          Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 17:19 +0000
            Re: C Names and Scopes fir <profesor.fir@gmail.com> - 2017-02-08 09:42 -0800
      Re: C Names and Scopes David Brown <david.brown@hesbynett.no> - 2017-02-08 12:08 +0100
    Re: C Names and Scopes Moai <penultimategrill@gmail.com> - 2017-02-08 19:16 -0500
      Re: C Names and Scopes David Brown <david.brown@hesbynett.no> - 2017-02-09 01:32 +0100
      Re: C Names and Scopes Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-09 08:18 -0800
      Re: C Names and Scopes Jerry Stuckle <jstucklex@attglobal.net> - 2017-02-09 12:06 -0500
  Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 10:51 +0000
  Re: C Names and Scopes Thiago Adams <thiago.adams@gmail.com> - 2017-02-08 03:11 -0800
    Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 11:39 +0000
      Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 12:06 +0000
        Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 13:31 +0000
        Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 13:40 +0000
          Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-08 16:39 +0000
            Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 17:51 +0000
              Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-08 20:56 +0000
                Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 22:08 +0000
                Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-08 23:27 +0000
      Re: C Names and Scopes David Brown <david.brown@hesbynett.no> - 2017-02-08 13:41 +0100
      Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-08 14:32 +0000
        Re: C Names and Scopes supercat@casperkitty.com - 2017-02-08 07:28 -0800
          Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 20:12 +0000
            Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-02-08 12:38 -0800
              Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 21:54 +0000
                Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-08 22:40 +0000
  Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-09 18:48 +0000
    Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-09 19:53 +0000
      Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-02-09 12:25 -0800
        Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-09 21:27 +0000
          Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-02-09 13:57 -0800
            Re: C Names and Scopes David Brown <david.brown@hesbynett.no> - 2017-02-13 10:54 +0100
        Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-10 00:26 +0000
          Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-10 00:42 +0000
            Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-10 01:03 +0000
              Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-10 01:49 +0000
                Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-10 12:31 +0000
                Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-10 23:48 +0000
                Re: C Names and Scopes supercat@casperkitty.com - 2017-02-10 16:06 -0800
                Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-02-10 16:22 -0800
                Re: C Names and Scopes supercat@casperkitty.com - 2017-02-12 09:17 -0800
                Re: C Names and Scopes Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-15 16:26 -0800
              Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-02-09 17:56 -0800
              Re: C Names and Scopes supercat@casperkitty.com - 2017-02-10 07:42 -0800
                Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-02-10 08:44 -0800
                Re: C Names and Scopes supercat@casperkitty.com - 2017-02-10 09:25 -0800
                Re: C Names and Scopes Jerry Stuckle <jstucklex@attglobal.net> - 2017-02-10 16:43 -0500
                Re: C Names and Scopes supercat@casperkitty.com - 2017-02-10 14:04 -0800
                Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-10 22:52 +0000
                Re: C Names and Scopes Andrey Tarasevich <andreytarasevich@hotmail.com> - 2017-02-10 15:10 -0800
        Re: C Names and Scopes Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-15 16:31 -0800
      Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-09 23:09 +0000
        Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-09 23:36 +0000
          Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-02-10 00:19 +0000
            Re: C Names and Scopes Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-02-10 00:38 +0000
  Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-03-04 01:23 +0000
    Re: C Names and Scopes jameskuyper@verizon.net - 2017-03-03 18:23 -0800
      Re: C Names and Scopes GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-04 14:42 +0100
        Re: C Names and Scopes "James R. Kuyper" <jameskuyper@verizon.net> - 2017-03-04 11:02 -0500
          Re: C Names and Scopes GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-04 23:35 +0100
            Re: C Names and Scopes Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-03-04 14:50 -0800
            Re: C Names and Scopes Richard Heathfield <rjh@cpax.org.uk> - 2017-03-05 13:39 +0000
              Re: C Names and Scopes GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-05 15:10 +0100
                Re: C Names and Scopes Richard Heathfield <rjh@cpax.org.uk> - 2017-03-05 14:34 +0000
                Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-03-05 19:25 -0800
              Re: C Names and Scopes raltbos@xs4all.nl (Richard Bos) - 2017-03-06 09:37 +0000
                Re: C Names and Scopes Richard Heathfield <rjh@cpax.org.uk> - 2017-03-06 10:34 +0000
                Re: C Names and Scopes James Kuyper <jameskuyper@verizon.net> - 2017-03-06 07:23 -0500
                Re: C Names and Scopes GOTHIER Nathan <nathan.gothier@gmail.com> - 2017-03-06 14:26 +0100
    Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-03-04 11:52 -0800
      Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-03-04 20:13 +0000
        Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-03-04 20:17 +0000
        Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-03-04 12:38 -0800
        Re: C Names and Scopes jameskuyper@verizon.net - 2017-03-04 13:50 -0800
          Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-03-04 22:37 +0000
            Re: C Names and Scopes jameskuyper@verizon.net - 2017-03-04 16:15 -0800
              Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-03-05 00:31 +0000
                Re: C Names and Scopes jameskuyper@verizon.net - 2017-03-04 16:47 -0800
                Re: C Names and Scopes BartC <bc@freeuk.com> - 2017-03-05 01:42 +0000
                Re: C Names and Scopes jameskuyper@verizon.net - 2017-03-04 19:20 -0800
                Re: C Names and Scopes Keith Thompson <kst-u@mib.org> - 2017-03-05 01:40 -0800

csiph-web