Scope caché en C

C a-t-il une scope cachée?

Par exemple, si j’ai une variable globale:

int x = 3; 

puis-je ‘déclarer’ à l’intérieur d’une fonction ou une ‘autre’ int x?

Oui, c’est comme ça que C fonctionne. Par exemple:

 int x; void my_function(int x){ // this is another x, not the same one } void my_function2(){ int x; //this is also another x { int x; // this is yet another x } } int main(){ char x[5]; // another x, with a different type } 

Oui, mais certains compilateurs se plaignent ou peuvent se faire plaindre. Pour gcc , utilisez -Wshadow .

Oui Scope Hiding existe en C.
Une variable dans la scope locale cachera la même variable nommée dans la scope globale.

Oui. C’est vraiment possible. Veuillez passer par ce post pour une explication détaillée sur les différentes scopes en C