Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C - Scope-regels

Een bereik in elke programmering is een gebied van het programma waar een gedefinieerde variabele kan bestaan ​​en buiten die variabele niet toegankelijk is. Er zijn drie plaatsen waar variabelen kunnen worden gedeclareerd in programmeertaal C −

  • Binnen een functie of een blok dat lokaal . wordt genoemd variabelen.

  • Buiten alle functies die algemeen . wordt genoemd variabelen.

  • In de definitie van functieparameters die formeel . worden genoemd parameters.

Laten we begrijpen wat lokaal is en algemeen variabelen, en formeel parameters.

Lokale variabelen

Variabelen die binnen een functie of blok worden gedeclareerd, worden lokale variabelen genoemd. Ze kunnen alleen worden gebruikt door instructies die zich binnen die functie of codeblok bevinden. Lokale variabelen zijn niet bekend bij functies buiten hun eigen. Het volgende voorbeeld laat zien hoe lokale variabelen worden gebruikt. Hier zijn alle variabelen a, b en c lokaal voor de functie main().

Live demo
#include <stdio.h>
 
int main () {

  /* local variable declaration */
  int a, b;
  int c;
 
  /* actual initialization */
  a = 10;
  b = 20;
  c = a + b;
 
  printf ("value of a = %d, b = %d and c = %d\n", a, b, c);
 
  return 0;
}

Globale variabelen

Globale variabelen worden buiten een functie gedefinieerd, meestal bovenop het programma. Globale variabelen behouden hun waarden gedurende de levensduur van uw programma en zijn toegankelijk binnen een van de functies die voor het programma zijn gedefinieerd.

Een globale variabele is toegankelijk voor elke functie. Dat wil zeggen, een globale variabele is beschikbaar voor gebruik in uw hele programma na de declaratie ervan. Het volgende programma laat zien hoe globale variabelen in een programma worden gebruikt.

Live demo
#include <stdio.h>
 
/* global variable declaration */
int g;
 
int main () {

  /* local variable declaration */
  int a, b;
 
  /* actual initialization */
  a = 10;
  b = 20;
  g = a + b;
 
  printf ("value of a = %d, b = %d and g = %d\n", a, b, g);
 
  return 0;
}

Een programma kan dezelfde naam hebben voor lokale en globale variabelen, maar de waarde van de lokale variabele binnen een functie heeft de voorkeur. Hier is een voorbeeld −

Live demo
#include <stdio.h>
 
/* global variable declaration */
int g = 20;
 
int main () {

  /* local variable declaration */
  int g = 10;
 
  printf ("value of g = %d\n",  g);
 
  return 0;
}

Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −

value of g = 10

Formele parameters

Formele parameters worden behandeld als lokale variabelen binnen een functie en hebben voorrang op globale variabelen. Hieronder volgt een voorbeeld −

Live demo
#include <stdio.h>
 
/* global variable declaration */
int a = 20;
 
int main () {

  /* local variable declaration in main function */
  int a = 10;
  int b = 20;
  int c = 0;

  printf ("value of a in main() = %d\n",  a);
  c = sum( a, b);
  printf ("value of c in main() = %d\n",  c);

  return 0;
}

/* function to add two integers */
int sum(int a, int b) {

   printf ("value of a in sum() = %d\n",  a);
   printf ("value of b in sum() = %d\n",  b);

   return a + b;
}

Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −

value of a in main() = 10
value of a in sum() = 10
value of b in sum() = 20
value of c in main() = 30

Lokale en globale variabelen initialiseren

Wanneer een lokale variabele is gedefinieerd, wordt deze niet door het systeem geïnitialiseerd, u moet deze zelf initialiseren. Globale variabelen worden automatisch door het systeem geïnitialiseerd wanneer u ze als volgt definieert −

Gegevenstype Initiële standaardwaarde
int 0
char '\0'
zweven 0
dubbel 0
aanwijzer NULL

Het is een goede programmeerpraktijk om variabelen op de juiste manier te initialiseren, anders kan uw programma onverwachte resultaten opleveren, omdat niet-geïnitialiseerde variabelen een waarde in beslag nemen die al beschikbaar is op hun geheugenlocatie.


C Taal

  1. Regels voor circuits van de serie
  2. Parallelle circuitregels
  3. Regels voor derivaten
  4. Regels voor antiderivaten
  5. C#-variabelen en (primitieve) gegevenstypen
  6. C# Variabel bereik
  7. C++ variabelen, literalen en constanten
  8. C Variabelen, constanten en literalen
  9. C opslagklasse
  10. Java-variabelen en -letters
  11. Verilog Tijdschaalbereik