Hej! er der nogle der vil fortælle mig hvad intern og ekstern
linkning er? Og er en kodeenhed bare en cpp
fil der har inkluderet nogle headerfiler.
Det er det hvis jeg forstår Henrik Tange bog.
Syntes bare han ikke er så grundig nogle gange.
Jeg vil gerne have en lidt bedre forklaring
hvis der er nogle der vil forklare det.
Tak!
Jeg bruger ikke de danske udtryk, så en kode enhed er volapyk for mig...men mon ikke det er en fil med kode ? Altså både cpp og hpp filer ? Det er mit umiddelbare gæt.
Mht. intern vs ekstern lænkning er det synligheden af variable og funktioner.
En ekstern variabel/funktion er defineret i en anden fil, end hvor den bliver brugt. Interne (også kaldet statiske) variable/funktioner er KUN synlige i den fil, hvor de er defineret:
main.c:
#include <stdio.h>
extern int external; /* <- Denne er defineret i en anden fil */
static int internal = 8; /* Denne kan ikke ses fra andre filer */
int main(int argc, char ** argv) {
printf("External: %d Internal: %d\n", external, internal);
return 0;
}
external.c:
int external = 7;