Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <vimtt4$27vv$1@dont-email.me>
Deutsch   English   Français   Italiano  
<vimtt4$27vv$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.misty.com!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Bart <bc@freeuk.com>
Newsgroups: comp.lang.c
Subject: Re: question about linker
Date: Tue, 3 Dec 2024 12:34:45 +0000
Organization: A noiseless patient Spider
Lines: 44
Message-ID: <vimtt4$27vv$1@dont-email.me>
References: <vi54e9$3ie0o$1@dont-email.me> <vi6sb1$148h7$1@paganini.bofh.team>
 <vi6uaj$3ve13$2@dont-email.me> <87plmfu2ub.fsf@nosuchdomain.example.com>
 <vi9jk4$gse4$1@dont-email.me> <vi9kng$gn4c$1@dont-email.me>
 <87frnbt9jn.fsf@nosuchdomain.example.com> <viaqh0$nm7q$1@dont-email.me>
 <877c8nt255.fsf@nosuchdomain.example.com> <viasv4$nm7q$2@dont-email.me>
 <vibr1l$vvjf$1@dont-email.me> <vic73f$1205f$1@dont-email.me>
 <20241129142810.00007920@yahoo.com> <vicfra$13nl4$1@dont-email.me>
 <20241129161517.000010b8@yahoo.com> <vicque$15ium$2@dont-email.me>
 <vid110$16hte$1@dont-email.me> <vifcll$1q9rj$1@dont-email.me>
 <vifiib$1s07p$1@dont-email.me> <87ldwx10gv.fsf@bsb.me.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 03 Dec 2024 13:34:45 +0100 (CET)
Injection-Info: dont-email.me; posting-host="58051acb06834042f2b64be747d68961";
	logging-data="73727"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19PQXBeNWUaBQus1GiqVJnl"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:DDooRKbJYAWcoT0EdwTh5ULaJO8=
In-Reply-To: <87ldwx10gv.fsf@bsb.me.uk>
Content-Language: en-GB
Bytes: 3252

On 03/12/2024 11:15, Ben Bacarisse wrote:
> Bart <bc@freeuk.com> writes:
> ...
>> If I write this
>>
>>    int *A, B[10], C(int);
>>
>> My compiler tells me that:
>>
>>    A is a local variable with type 'ref i32' (expressed in other syntax)
>>    B is a local variable with type '[10]i32'
>>    C is a function with return type of 'i32', taking one unnamed
>>      parameter of type 'i32'.
>>
>> (Interestingly, it places C into module scope, so the same declaration can
>> also create names in different scopes!)
> 
> A small correction: that declaration gives all three names the same
> scope[1].

This is what I observed my compiler doing, because it displays the 
symbol table. It puts C into module-scope, so I can access it also from 
another function without another declaration (so non-conforming, but I'm 
long past caring).

I can't see gcc's symbol table, but I can't access C from another 
function without it having its own declaration, or there being a 
module-scope one.

With gcc, such a declaration inside a function suffices to be able 
access a function 'C' defined later in the file.

>  You are confusing scope with linkage.

It's possible. So a function declaration inside a function gives the 
name external linkage (?). Which in this context means the function will 
be outside this one, but elsewhere in the module, rather than being 
imported from elsewhere module.

If I say I find these quirks of C confusing, people will have another go 
at me. So let's say it makes perfect sense for 'extern' to mean two 
different things!