Auto definiert, die in C Editoren... Warum?
-
09-06-2019 - |
Frage
Wenn Eclipse erstellt eine neue Datei (.c oder .h Datei) in ein C-Projekt den editor immer auto schafft eine #define
an der Spitze der Datei wie folgt:Wenn die Datei mit dem Namen 'myCFile.c' es wird ein #define
am Anfang der Datei wie diese
#ifndef MYCFILE_C_
#define MYCFILE_C_
Ich gesehen haben andere Autoren tun dies auch (Codewright und SlikEdit glaube ich).Die #defines
nicht scheinen, etwas zu tun für den editor, wie kann ich Sie einfach löschen, ohne Probleme, und ich kann nicht denken, ein Grund, warum Ich würde Sie nutzen wollen.Weiß jemand, warum es Sie gibt?
Lösung
Es ist zum Schutz gegen mehrere Definitionen.
Andere Tipps
Manchmal sind die Leute auch eine ganze .c Datei, in anderen .c-Dateien (oder auch .h-Dateien), so hat es den genau gleichen Zweck der Verhinderung einer include-Datei von der erste enthielt mehrere Male und der compiler spuckt mehrfach definiert Fehler.
Es ist merkwürdig, dass es das Standard-Verhalten von einem editor setzen Sie diese in etwas ein .h-Datei.Dies wäre ein selten Benötigtes feature.
Eine weitere moderne version davon zu verwenden ist:
#pragma once
Es ist ziemlich ungewöhnlich, um zu sehen, diese in einem .c-Datei, es ist normalerweise in den header-Dateien nur.
Ich denke, es ist ein Rückfall der C-include-Fragen, wo mehrere Exemplare von der Quelle bekommen würde enthalten - es sei denn, Sie sind akribisch gehören Ketten (Eine Datei enthält n andere).Überprüfen, ob ein symbol definiert ist und auch nur, wenn das symbol definiert ist, wurde ein Weg aus diesem.