Criação simultânea de ligações internas e externas em C

Sep 06 2020

Eu estava lendo uma referência C sobre ligação (externa, interna e nenhuma) e me deparei com o seguinte:

Se, dentro de uma unidade de tradução, o mesmo identificador aparecer com a vinculação interna e externa, o comportamento é indefinido.

Eu queria saber como esse comportamento indefinido pode ocorrer. Com base no que li, uma variável pode ter apenas uma classe de armazenamento. Portanto, não pode ser declarado ambos statice extern, ao mesmo tempo.

Então, em que cenário uma variável pode ter ligação interna e externa?

Respostas

1 EricPostpischil Sep 06 2020 at 09:28

Neste código:

extern int x;
static int x;

A primeira declaração diz que xhá vínculo externo, e a segunda declaração diz que há vínculo interno.