Die obige Vorgehensweise führt zu einem Neudefinitionsfehler für QUERY. Ich möchte kein Makro verwenden, da nach jeder Zeile die Rücktaste ‘\’ erforderlich ist. Ich könnte diese in einer separaten c-Datei definieren und die Variablen in der h-Datei extern, aber ich fühle mich faul, das zu tun.
Gibt es eine andere Möglichkeit, dies in C zu erreichen?
Header-Dateien, wie Armen sagt – überprüfen Sie seine Antwort.
– Sadik
31. März 2011 um 12:05 Uhr
Beachten Sie, dass in C++ global const impliziert static implizit: stackoverflow.com/questions/12042549/…
– Ciro Santilli OurBigBook.com
29. November 2018 um 14:22 Uhr
Schreiben Sie in eine .c-Datei, was Sie geschrieben haben. Schreiben Sie in die entsprechende .h-Datei
extern const char* QUERY; //just declaration
Fügen Sie die .h-Datei überall dort ein, wo Sie die Konstante benötigen
Kein anderer guter Weg 🙂 HTH
🙁 Dachte ich mir. Schätze, ich muss aufhören, so faul zu sein!
– Manisch
31. März 2011 um 12:08 Uhr
@Manish:: Es ist besser, als die Erklärung in jedem zu schreiben .c Dateien. Und du weißt Ctrl+C — Ctrl+V funktioniert auch.
– Sadik
31. März 2011 um 12:14 Uhr
+1 Sie können jede gewünschte Farbe haben, solange es schwarz ist LOL
– pmg
31. März 2011 um 12:16 Uhr
@Acme: Strg + C – Strg + V ist genau das, was ich vermeiden möchte. Ich weiß, dass ich, wenn ich es in einer c-Datei ändere, vergesse, es in einer anderen zu ändern, was zu einem Debugging-Albtraum führen wird.
– Manisch
31. März 2011 um 12:22 Uhr
Weiß jemand, ob es ein Tool gibt, um die Header-Dateien zu generieren?
– Deich
1. April 2020 um 15:04 Uhr
tipaye
Sie könnten statische Konstanten verwenden, in jeder Hinsicht wird Ihr Effekt erreicht.
myext.h:
#ifndef _MYEXT_H
#define _MYEXT_H
static const int myx = 245;
static const unsigned long int myy = 45678;
static const double myz = 3.14;
#endif
Dieser Ansatz hat einen Nachteil. Wenn die Konstante nicht in einer Kompilierungseinheit verwendet wird, geben einige Compiler eine Warnung aus, die nicht stummgeschaltet werden kann, ohne auf Compiler-Besonderheiten zurückzugreifen.
Header-Dateien, wie Armen sagt – überprüfen Sie seine Antwort.
– Sadik
31. März 2011 um 12:05 Uhr
Beachten Sie, dass in C++ global
const
impliziertstatic
implizit: stackoverflow.com/questions/12042549/…– Ciro Santilli OurBigBook.com
29. November 2018 um 14:22 Uhr