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


Groups > comp.lang.c > #142997

Re: Scopes of identifiers

Newsgroups comp.lang.c
Date 2019-04-10 20:02 -0700
References <098da5fe-31d3-47b7-b695-d4faea10b366@googlegroups.com> <e9d0004b-6a21-43ef-98f6-16ed2152d985@googlegroups.com>
Message-ID <b734ed8a-dcf0-45f7-82ad-fb4fa9e05ba2@googlegroups.com> (permalink)
Subject Re: Scopes of identifiers
From James Kuyper <jameskuyper@alumni.caltech.edu>

Show all headers | View raw


On Wednesday, April 10, 2019 at 7:34:34 PM UTC-4, Thiago Adams wrote:
...
> We can declare structs inside structs,or enum but not 
> functions ...

Correct: 6.7.2.1p2

> ... or typedefs.

Correct. A member of a struct or union is allowed to have a specifier-
qualifier-list that may contain any combination of type-specifiers and
type-qualifiers (6.7.2.1p1), but may not have any of the storage-class-
specifiers (6.7.1) or function-specifiers (6.7.4) that are allowed for
declarations in other contexts (6.7p1). Thus, they may not use the
typedef, extern, static, auto, register, or inline keywords.

> And I don't have much idea if declaring a function
> in a function scope makes sense.

Correct: "A label name is the only kind of identifier that has function
scope." (6.2.1p3).

> Functions are always in a global scope, ...

The C standard does not use the term "global scope". Some people use
that term when they should be using the term "file scope". Functions do
NOT always have file scope. All identifiers other than macro names,
macro parameters, and labels follow the same scope rules (6.2.1p4), and
that includes function identifiers.
 
> ... but I can declare it 
> in a function scope?

No, since it's not a label.

> void F()
> {
>   void F3();

That is a block-scope declaration. The scope of that declaration ends
with the next line:

> }
> 
> void F4()
> {

So there's no declaration in scope for the following function call:

>   F3();
> }

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


Thread

Scopes of identifiers Thiago Adams <thiago.adams@gmail.com> - 2019-04-10 16:15 -0700
  Re: Scopes of identifiers Bart <bc@freeuk.com> - 2019-04-11 00:33 +0100
    Re: Scopes of identifiers Thiago Adams <thiago.adams@gmail.com> - 2019-04-10 16:45 -0700
    Re: Scopes of identifiers Thiago Adams <thiago.adams@gmail.com> - 2019-04-10 18:31 -0700
  Re: Scopes of identifiers Thiago Adams <thiago.adams@gmail.com> - 2019-04-10 16:34 -0700
    Re: Scopes of identifiers Robert Wessel <robertwessel2@yahoo.com> - 2019-04-10 20:50 -0500
    Re: Scopes of identifiers James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-04-10 20:02 -0700
    Re: Scopes of identifiers Keith Thompson <kst-u@mib.org> - 2019-04-10 20:58 -0700
      Re: Scopes of identifiers luser droog <luser.droog@gmail.com> - 2019-04-10 21:48 -0700
      Re: Scopes of identifiers Andrey Tarasevich <andreytarasevich@hotmail.com> - 2019-04-11 11:57 -0700
        Re: Scopes of identifiers scott@slp53.sl.home (Scott Lurndal) - 2019-04-11 19:12 +0000
          Re: Scopes of identifiers Thiago Adams <thiago.adams@gmail.com> - 2019-04-11 12:35 -0700
            Re: Scopes of identifiers Ben Bacarisse <ben.usenet@bsb.me.uk> - 2019-04-12 01:11 +0100
              Re: Scopes of identifiers Thiago Adams <thiago.adams@gmail.com> - 2019-04-12 05:29 -0700
                Re: Scopes of identifiers Thiago Adams <thiago.adams@gmail.com> - 2019-04-12 05:39 -0700
        Re: Scopes of identifiers Keith Thompson <kst-u@mib.org> - 2019-04-11 14:00 -0700
          Re: Scopes of identifiers Nick Bowler <nbowler@draconx.ca> - 2019-04-15 19:48 +0000
    Re: Scopes of identifiers Bart <bc@freeuk.com> - 2019-04-11 10:36 +0100
      Re: Scopes of identifiers Bart <bc@freeuk.com> - 2019-04-11 14:25 +0100
        Re: Scopes of identifiers Keith Thompson <kst-u@mib.org> - 2019-04-11 10:20 -0700
    Re: Scopes of identifiers Thiago Adams <thiago.adams@gmail.com> - 2019-04-11 05:00 -0700
    Re: Scopes of identifiers Thiago Adams <thiago.adams@gmail.com> - 2019-04-11 06:42 -0700
      Re: Scopes of identifiers James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-04-11 08:11 -0700
  Re: Scopes of identifiers BGB <cr88192@gmail.com> - 2019-04-10 22:35 -0500
    Re: Scopes of identifiers Keith Thompson <kst-u@mib.org> - 2019-04-10 22:04 -0700
      Re: Scopes of identifiers BGB <cr88192@gmail.com> - 2019-04-11 05:46 -0500
  Re: Scopes of identifiers John Bode <jfbode1029@gmail.com> - 2019-04-11 12:04 -0700
    Re: Scopes of identifiers James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-04-11 13:18 -0700
    Re: Scopes of identifiers Keith Thompson <kst-u@mib.org> - 2019-04-11 14:31 -0700
  Re: Scopes of identifiers Andrey Tarasevich <andreytarasevich@hotmail.com> - 2019-04-11 12:28 -0700
    Re: Scopes of identifiers Thiago Adams <thiago.adams@gmail.com> - 2019-04-11 12:50 -0700
    Re: Scopes of identifiers James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-04-11 14:20 -0700
      Re: Scopes of identifiers Thiago Adams <thiago.adams@gmail.com> - 2019-04-11 14:43 -0700
      Re: Scopes of identifiers Andrey Tarasevich <andreytarasevich@hotmail.com> - 2019-04-11 15:04 -0700
        Re: Scopes of identifiers Keith Thompson <kst-u@mib.org> - 2019-04-11 17:08 -0700
          Re: Scopes of identifiers Andrey Tarasevich <andreytarasevich@hotmail.com> - 2019-04-11 18:45 -0700
            Re: Scopes of identifiers James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-04-11 23:16 -0400
            Re: Scopes of identifiers Keith Thompson <kst-u@mib.org> - 2019-04-11 20:19 -0700
            Re: Scopes of identifiers Tim Rentsch <tr.17687@z991.linuxsc.com> - 2019-04-12 14:39 -0700
            Re: Scopes of identifiers Ike Naar <ike@sdf.lonestar.org> - 2019-04-13 20:02 +0000
      Re: Scopes of identifiers James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-04-11 23:26 -0400

csiph-web