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-scoperegels: Lokale, globale en formele variabelen

Wat is scope?

Scope (bereik) bepaalt waar een variabele zichtbaar en toegankelijk is. C kent drie declaratieplaatsen:

  1. Lokaal – binnen functie/blok
  2. Globaal – buiten alle functies
  3. Formeel parameter – in functiedefinitie

Lokale variabelen

Gedeclareerd in functie/blok. Alleen zichtbaar daar. Levensduur = functie-aanroep. Niet geïnitialiseerd = garbage.

int main() {
    int a = 10, b = 20;  // lokaal voor main
    int c = a + b;
    printf("%d\n", c);
    return 0;
}

Globale variabelen

Gedeclareerd buiten functies (meestal bovenaan). Zichtbaar in alle functies na declaratie. Levensduur = hele programma. Automatisch geïnitialiseerd op 0/NULL.

#include <stdio.h>
int g = 20;  // globaal

int main() {
    int g = 10;  // lokaal overschaduwt globaal
    printf("g = %d\n", g);  // print 10
    return 0;
}

Formele parameters

Gedragen zich als lokale variabelen in de functie. Overschaduwen globale variabelen met dezelfde naam.

#include <stdio.h>
int a = 20;  // globaal

int sum(int a, int b) {  // formele parameters
    printf("a in sum = %d\n", a);  // print parameterwaarde
    return a + b;
}

int main() {
    int a = 10, b = 20;  // lokaal
    printf("a in main = %d\n", a);  // 10
    int c = sum(a, b);
    printf("c = %d\n", c);  // 30
    return 0;
}

Initialisatie

TypeStandaardwaarde (globaal/static)
int0
char'\0'
float/double0.0
pointerNULL

Lokale variabelen worden NIET automatisch geïnitialiseerd! Altijd zelf initialiseren.

Best practices

  • Minimaliseer globale variabelen (koppeling, debugging moeilijk)
  • Gebruik static voor file-scope globals
  • Initialiseer altijd lokale variabelen
  • Geef duidelijke namen; vermijd naamconflicten lokaal/gloaal

C Taal

  1. Belangrijkste Regels voor Serie Circuits: Stroom, Weerstand en Spanning
  2. Parallele Circuit Fundamenten: Spanning, Weerstand en Stroom Regels
  3. Essentiële Afgeleide Regels: Snelle Referentiehandleiding
  4. Fundamentele Stamfunctieregels: Constanten, Sommen en Verschillen
  5. C# Variabelen & Primitive Datatypes onder de knie krijgen: Complete gids
  6. Variabele Scope in C#: Klasse-, Methode- en Blokniveau
  7. C++ variabelen, literalen en constanten: een uitgebreide gids
  8. C Variabelen, Constanten en Literals: Een Complete Gids
  9. C-opslagklassen begrijpen: Bereik, levensduur en prestaties
  10. Verilog Timescales begrijpen en printen in elke Scope
  11. Java-variabelen en literals: een uitgebreide gids