Angenommen, ich habe ein struct list
und möchte eine "Konstruktor" - und eine "Destruktor" -Funktion bereitstellen. Wie soll ich sie benennen?
Gibt es eine etablierte Namenskonvention, die in der realen Welt vorherrscht?
Es gibt keine allgemein anerkannte Konvention.
C ++ hat natürlich die Ansichten der Menschen in dieser Angelegenheit beeinflusst.
Persönlich verwende ich new (), wenn die Funktion Speicherzuweisung durchführt, init () wenn nicht, delete () wenn Freigabe auftritt und cleanup () wenn nicht.
Die GLib / GTK-Leute haben die erstellte Konvention, _new
und _free
für Speicherzuweisungskonstruktoren und -destruktoren und _init
und _destroy
für nichtspeicherzuweisende Konstruktoren und Destruktoren zu verwenden.
Die pthread-Bibliothek scheint meistens der Konvention von _init
und _destroy
für Nicht-Speicher-Allokierungs-Einsen und% Co_de% für Speicherzuweisung zu folgen.
X11 verwendet _create
und XOpenFoo
.
Die C-Bibliothek selbst verwendet XCloseFoo
wird für nicht speicherzuhaltende Bereinigungen von Strukturen wie free
und glob_t
verwendet.
Also, ich denke, die Antwort ist nein, aber es gibt auf jeden Fall große Gruppen von Menschen, die in bestimmten Projekten bestimmte Notationen ausgewählt haben.
Ich habe in einer Firma gearbeitet, die init
/ deinit
als Standard verwendet hat, was gut zu sein scheint. Ich glaube, ich habe init
/ fini
von mehr als einer Quelle gesehen, was, soweit ich das beurteilen kann, eine Einbildung ist, die Namen gleich lang zu machen.
pthread_mutex_init
/ pthread_mutex_destroy
(wird direkt initialisiert)
sem_create
/ sem_destroy
(gibt ein neues Handle zurück, aber beobachten, dass Posix nicht zwischen einem "destroy", das den Handle freigibt, und einem "destroy", das direkt zerstört, unterscheiden muss)
mpz_init
/ mpz_clear
(wird direkt initialisiert)
Sie können also wahrscheinlich tun, was Sie wollen, und niemand kann sich vernünftig beschweren, dass Sie einen "Standard" ignorieren.
Ich verwende die folgende Konvention:
..._alloc()
..._init()
..._create()
..._discard()
..._dealloc()
oder ..._free()
..._destroy()
Tags und Links c constructor destructor naming-conventions