2016-11-18 4 views
1

Ich habe diese Struktur als Header-Datei in einem meiner c-Projekte.Speichern einer Funktion in einer Header-Datei

struct info{ 

char name[50]; 
char address[150]; 
char country[20]; 
char region[20]; 
char postalcode[10]; 
char phonenumber[15]; 
char paymethod[15]; 

}; 

Kann ich aber eine Funktion in einer Header-Datei speichern? Weil es einfacher wäre, das gesamte Programm zu pflegen.

Antwort

0

Sie können eine Funktion schreiben und sie in einer Header-Datei mit der Erweiterung .h speichern, so dass Sie sie in Zeiten verwenden können. Als Beispiel werde ich eine Funktion erstellen, zwei Integer-Werte zu addieren und die Summe zurückkehren, wenn die Funktion aufgerufen wird ..

int sumOfTwoInteger(int a ,int b){ 
    return a+b; 
} 

alles, was ich jetzt tun muß, ist die Datei mit einem Namen und einer Erweiterung speichern .h , zB 'myheader.h' Jetzt legen Sie die Header-Datei in das Verzeichnis, in dem sich Ihr aktuelles Programm befindet. Zu Beginn des eigentlichen Programms fügen Sie die Header-Datei

#include"myheader.h" 

Jetzt können Sie diese Funktion aufrufen, wann immer Sie wollen ...

int sum; 
sum = sumOfTwoInteger(10,5); 

und die Summe wird in der Variablen ‚Summe‘ gespeichert werden

+1

Dies funktioniert Nur wenn Ihr Projekt nur eine .c-Datei enthält, die die .h-Datei enthält. Sobald Sie mehr als eine .c-Datei haben, die die Header-Datei enthält, erhalten Sie während der Verbindungszeit "mehrere Definitionsfehler". –

2

Die geeignete Vorgehensweise besteht darin, die Funktionsprototypen (Funktionsdeklarationen) in der Headerdatei zu speichern. Die Funktionsimplementierungen gehen in eine ".c" Datei.

1

Kann ich aber eine Funktion in einer Header-Datei speichern? Weil es einfacher wäre, das gesamte Programm zu pflegen.

Ich gehe davon durch store, meinen Sie definieren.

Ja, können Sie Funktionen in einer Header-Datei mit dem inline Schlüsselwort definieren, wenn C99 oder eine neuere Version von C unter Verwendung von

jedoch in der Praxis, die nur für kleine Funktionen gut.

Am besten deklarieren Sie Funktionen in .h-Dateien und definieren sie für die meisten Funktionen in .c-Dateien.

Die Definition von Funktionen inline kann dem Programm eine Leistungssteigerung bringen, aber es koppelt auch die Deklaration und Definition. Wenn die Definition geändert werden muss, müssen Sie alle C-Dateien erneut kompilieren, die #include die .h-Datei. Je nach Größe des Projekts kann das teuer werden.

1

Sie können eine Funktion in einer Header-Datei speichern, sollten dies aber nicht tun.

Es scheint einfach zu sein, ein Projekt mit dem Stil "Eine Datei für eine einzelne Operation" zu verwalten, aber wenn das Projekt größer wird, und wenn Sie viele Funktionen haben, wird es einfacher, Header-Dateien für Definitionen zu lesen.

Und wenn Sie Ihren Code wiederverwendbar machen wollen, Header-Dateien helfen Ihnen, binary-only Verteilung des Codes in Bibliotheken (dh Sie Ihre Funktionsbibliothek über einen Header nicht ohne Ihren tatsächlichen Code aussetzt) ​​

Verwandte Themen