*   >> läser Utbildning artiklar >> science >> programming

Grunderna i C Identifier Scope

, men funktionen ligger utanför huvuduppgift; identifierarna och provnings (print) uttalanden har skrivits på ett liknande sätt. Läs och prova följande kod: #include int myInt = 40; void myFn () {printf ("% i", myInt); int herInt = 50; } Int main () {myFn (); //printf ("% i", herInt); återvända 0; } Du skulle ha försökt koden. Observera att en identifierare som deklarerats utanför funktionsblocket (men inte i ett annat block) ses inne i funktionsblocket.

Nu tar bort kommentaren beteckningen i "sista" raden och försök koden igen; kommer du att få ett felmeddelande vid kompileringen, eftersom en identifierare som deklarerats inuti ett funktionsblock inte kan ses utanför funktionsblocket. Den för Construct och Identifier Omfattning Följande kod har skrivits liknande den ovan (allt är i stora block); identifierarna och provnings (print) uttalanden har skrivits på ett liknande sätt.

Läs och prova följande kod: #include int main () {int myInt = 40; int i = 0; for (i = 0; i {printf ("% i", myInt), printf ("\\ n"); int herInt = 50;} //printf ("% i", herInt), åter 0;} Du bör har försökt koden. Observera att identifierare som deklarerats utanför for-blocket ses inuti for-blocket. I detta fall är värdet av identifierare skrivs 3 gånger.

Nu tar bort kommentaren beteckningen i "sista" linjen och prova koden igen, kommer du att få ett felmeddelande vid kompileringen, eftersom en identifierare som deklarerats inuti för blocket kan inte ses utanför för blocket Avdrags Blocks finns med olika konstruktioner en identifierare förklarats utanför block kan ses inuti block En identifierare som deklarerats inuti... ett block kan inte ses utanför blocket. De principer som anges i den här guiden är tillämpliga på initieringar samt. Minns att initieringen är förklaringen och uppdrag.

File Omfattning Om en identifierad inte deklarerats inuti något block, inte ens inne i huvudfunktionsblock, då identifierare sägs ha filen omfattning. Vi såg ett exempel ovan när vi hade att göra med funktionen konstruktionen (myInt). Blockera Omfattning En identifierare deklareras i ett block kan bara ses insidan som block. En sådan identifierare sägs ha blockera omfattning. A Block inuti en grupp Om en identifierare deklareras i ett block, kan det ses i ett kapslat block? Svaret är ja och vi har redan stött på detta utan att vara medvetna om det. Ta fallet med if-konstruktionen ovan.

Huvudfunktionen har ett block. If-blocket är inne i huvudfunktionen. Så om blocket är kapslad inuti block av huvudfunkt

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.