Path: csiph.com!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c Subject: Re: Scopes of identifiers Date: Thu, 11 Apr 2019 14:31:38 -0700 Organization: None to speak of Lines: 20 Message-ID: References: <098da5fe-31d3-47b7-b695-d4faea10b366@googlegroups.com> <07db382c-2c22-4617-b643-906da26d5cd4@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: reader02.eternal-september.org; posting-host="87362217ce2e2b0a1d2135c8fdf71e43"; logging-data="25764"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19Q+PRNHogXyQl56q4zJ/En" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) Cancel-Lock: sha1:lgO3W745Usu0vZST7Qa9BZIWvdo= sha1:nQZ1H54xX2fvyIk8viIKlHUvZx8= Xref: csiph.com comp.lang.c:143038 John Bode writes: [...] > There are four _name spaces_: > > 1. Labels (disambiguated by a leading 'goto' keyword or trailing ':'); > 2. Struct, union, and enum _tag names_ (disambiguated by a preceding 'struct', 'union', or > 'enum' keyword); > 3. Struct and union _member names_ (disambiguated by an identifier followed by either > a '.' or '->' operator); > 4. All other identifiers. A small correction: a member name can be preceded by an expression (more precisely a postfix-expression) followed by a "." or "->", not just an identifier. For example `function_call().member` or `array[index]->member` is valid. -- Keith Thompson (The_Other_Keith) kst-u@mib.org Will write code for food. void Void(void) { Void(); } /* The recursive call of the void */