2012-04-25 24 views
8

Non sono al computer, quindi non posso testarlo al momento ma ho un codice da recensire. Sono ancora un po 'in un mindframe C++ sfortunato.Scopo del typedef

Quindi, quando un typedef viene dichiarato all'interno di un file sorgente C qual è il suo ambito? Sono consapevole che per rendere le funzioni e le variabili disponibili solo all'interno della stessa unità di traduzione è necessario renderle statiche e mi chiedevo se questo è lo stesso per typedef?

risposta

22

typedef sono dichiarazioni. Se si ha un typedef in un file C, nessun altro file C ne sarà a conoscenza poiché sono compilati in modo indipendente l'uno dall'altro.

Per un typedef in un'intestazione, sarà ovviamente visibile da tutti i file C che lo includono.

+0

Grazie, ha senso. – Firedragon

5

typedef ha la stessa portata variabili regolari in C/C++

1

Non so che cosa è il significato di questa frase complessa, ma questo è il modo in C standard definisce l'ambito di typedef:

Come caso speciale, un nome di tipo (che non è una dichiarazione di un identificatore) è considerato un ambito che inizia subito dopo il punto all'interno del nome del tipo in cui appare l'identificatore omesso se non è stato omesso.

P.S. Qualcuno per favore spiega.