Also ich folge in Head First C und wir sind in einem Kapitel, wo wir lernen, mehrere Dateien zusammen zu kompilieren. Einer von ihnen ist encrypt.c
.Warum muss ich eine .h-Headerdatei in die gleichnamige .c-Datei einfügen?
#include "encrypt.h"
void encrypt(char *message)
{
char c;
while (*message) {
*message = *message^31;
message++;
}
}
Die encrypt.h
Datei wiederholt die erste Zeile mit einem Semikolon am Ende, also warum brauche ich es? Ich verstehe, warum ich Header-Dateien benötigen würde, um das Problem der Verwendung einer Funktion zu beheben, bevor es definiert ist, so dass ich verstehen konnte # einschließlich es in einer Datei, die encrypt.c
verwendet, aber warum sollte ich es innerhalb encrypt.c
? Ist das nur einer dieser Gründe?
Sie können eine Funktion nicht verwenden, bevor sie definiert wurde. Sie können die Kopfzeile für die Funktion deklarieren und sie dann verwenden, nachdem sie definiert wurde. Aber eine Headerdatei gewährt Ihnen keinen Superuser, da Sie damit eine nicht deklarierte Funktion verwenden können. – smac89
Nicht relevant in diesem speziellen Beispiel, aber Header-Dateien definieren auch oft 'typedef's und' struct's und alle Arten von Dingen, die die in diesem Header deklarierten Funktionen verwenden möchten. –
Ich habe auch einige andere. Dieses Buch hat Fehler, aber sie alle tun es. – punstress