Avatar billede jimmi1311 Nybegynder
26. juni 2006 - 10:43 Der er 5 kommentarer og
1 løsning

Simpel C spørgsmål

Hej Alllesammen

Jeg er ikke lige helt inde i C. Plejer at skrive i Java og C# ;-)

Jeg har en C fil, hvor der blandt alle incllude filerne står:
#include ".\test.h"
void DispatchMessages();
#include "debugging/debuglog.h"

Hvad gør denne linie: void DispatchMessages(); ??

Kalder den bare DispatchMessages() eller hva'??

MVH
Jimmi
Avatar billede tokelil Nybegynder
26. juni 2006 - 11:20 #1
Når den står der, så er det en deklaration af funktionen void DispatchMessages();, så DispatchMessages() kan kaldes længere nede i din kode. Selve implementation af funktionen er sandsynligvis længere nede i din kode.
Avatar billede jimmi1311 Nybegynder
26. juni 2006 - 11:31 #2
Okay, men implementationen er i en helt anden fil. Betyder det ikke noget??
Avatar billede esbenp Nybegynder
26. juni 2006 - 12:18 #3
Nej det betyder ikke noget
Avatar billede jimmi1311 Nybegynder
26. juni 2006 - 15:38 #4
Hvorfor er det at man deklerer en metode i en cc fil og implementere den i en anden???

tokelil-> smid et svar.
Avatar billede tokelil Nybegynder
26. juni 2006 - 17:55 #5
Mit første svar, var et svar... ;)

Normalt har man deklarationen af funktioner i en header fil (.h) og selve implementationen i en anden fil. (.c eller .cpp hvis man bruger c++) Jeg kan ikke lige komme i tanke om andet end for overskuelighed, som grund.

Det lille stykke kode du har med deklaration midt i includesne er ikke normalt i de bøger og kode jeg set. Normalt er deklarationerne i en header fil som includes.
Avatar billede esbenp Nybegynder
26. juni 2006 - 19:59 #6
Grunden er at compileren forventer at funktioner er erklæret før man bruger dem. Man behøver dog ikke implementere dem før man bruger dem. Det er nok at skrive definitionen.

En anden grund er hvis to funktioner der mutualt rekursivt kalder hinanden. De kan ikke begge blive defineret før kaldet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester