Als «c» getaggte Fragen

C ist eine universelle Programmiersprache, die für die Systemprogrammierung (Betriebssystem und eingebettet), Bibliotheken, Spiele und plattformübergreifende Programme verwendet wird. Dieses Tag sollte bei allgemeinen Fragen zur C-Sprache verwendet werden, wie in der Norm ISO 9899 definiert (die neueste Version, 9899: 2018, sofern nicht anders angegeben - auch tagversionsspezifische Anforderungen mit c89, c99, c11 usw. kennzeichnen). C unterscheidet sich von C ++ und sollte ohne einen rationalen Grund nicht mit dem C ++ - Tag kombiniert werden.


4
Warum tippt jeder über Standard-C-Typen?
Wenn Sie verwenden möchten , Qt , müssen Sie umarmen quint8, quint16und so weiter. Wenn Sie verwenden möchten GLib , müssen Sie willkommen guint8, guint16und so weiter. Auf Linux gibt es u32, s16und so weiter. uC / OS definiert SINT32, UINT16und so weiter. Und wenn Sie eine Kombination dieser Dinge …
103 c++  c  stdint 

12
Warum sind C-Zeichen-Literale Ints anstelle von Zeichen?
In C ++ , sizeof('a') == sizeof(char) == 1. Dies ist intuitiv sinnvoll, da 'a'es sich um ein Zeichenliteral handelt und sizeof(char) == 1wie im Standard definiert. In C jedoch sizeof('a') == sizeof(int). Das heißt, es scheint, dass C-Zeichenliterale tatsächlich ganze Zahlen sind. Weiß jemand warum? Ich kann viele Erwähnungen …
103 c++  c  char  sizeof 

7
Komma im C / C ++ - Makro
Angenommen, wir haben ein solches Makro #define FOO(type,name) type name Was wir gerne gebrauchen könnten FOO(int, int_var); Aber nicht immer so einfach: FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 Natürlich könnten wir tun: typedef std::map<int, int> map_int_int_t; FOO(map_int_int_t, map_var); // OK das ist …
103 c++  c  macros  c-preprocessor 


3
Unterschied zwischen int32, int, int32_t, int8 und int8_t
Ich bin int32_tkürzlich in einem C-Programm auf den Datentyp gestoßen. Ich weiß, dass es 32 Bit speichert, aber nicht intund int32das Gleiche tun? Außerdem möchte ich charin einem Programm verwenden. Kann ich int8_tstattdessen verwenden? Was ist der Unterschied? Zusammenfassend: Was ist der Unterschied zwischen int32, int, int32_t, int8 und int8_t …
103 c  int  declaration 

7
Hexadezimalzeichen in C drucken
Ich versuche, eine Zeichenzeile einzulesen und dann das hexadezimale Äquivalent der Zeichen auszudrucken. Wenn ich zum Beispiel eine Zeichenfolge habe "0xc0 0xc0 abc123", bei der die ersten beiden Zeichen c0hexadezimal und die restlichen Zeichen abc123in ASCII sind, sollte ich sie erhalten c0 c0 61 62 63 31 32 33 Die …
103 c  hex  printf 

4
Was bedeutet -D_XOPEN_SOURCE?
Ich bin kürzlich auf Code gestoßen, den gcc ohne dieses Argument nicht kompilieren würde. Ich habe die gcc-Manpage überprüft, aber diese spezielle Option nicht gefunden. Ich habe es gefunden XOPEN_SOURCE, aber es gab wenig Erklärung dafür, was es tut. Kann jemand bitte näher darauf eingehen? Ich weiß, -D_XOPEN_SOURCEdass unterschiedliche Werte …
103 c  gcc 

2
Was bedeutet && in void * p = && abc;
Ich bin auf einen Code gestoßen void *p = &&abc;. Welche Bedeutung hat &&hier? Ich kenne rWert-Referenzen, aber ich denke &&, dass die Verwendung in diesem Zusammenhang anders ist. Was bedeutet &&in void *p = &&abc;?
102 c++  c  gcc  operators 

10
"F" nach Nummer
Was bedeutet das fnach den Zahlen? Ist das von C oder Objective-C? Gibt es einen Unterschied, wenn dies nicht zu einer konstanten Zahl hinzugefügt wird? CGRect frame = CGRectMake(0.0f, 0.0f, 320.0f, 50.0f); Können Sie erklären, warum ich nicht einfach schreiben würde: CGRect frame = CGRectMake(0, 0, 320, 50);

7
Lassen Sie ein Programm langsam laufen
Gibt es eine Möglichkeit, ein C ++ - Programm langsamer auszuführen, indem Betriebssystemparameter unter Linux geändert werden? Auf diese Weise möchte ich simulieren, was passieren wird, wenn dieses bestimmte Programm auf einem wirklich langsameren Computer ausgeführt wird. Mit anderen Worten, eine schnellere Maschine sollte sich für dieses bestimmte Programm wie …
102 c++  c  linux  unix  ubuntu 

6
Sollten Strukturdefinitionen in die Datei .h oder .c aufgenommen werden?
Ich habe sowohl vollständige Definitionen von structs in Kopfzeilen als auch nur Deklarationen gesehen - hat eine Methode einen Vorteil gegenüber der anderen? Wenn es einen Unterschied macht, schreibe ich normalerweise eine Struktur wie diese in die .h typedef struct s s_t; Bearbeiten Um klar zu sein, sind die Optionen …
102 c  header  struct 

6
snprintf und Visual Studio 2010
Ich bin unglücklicherweise nicht in der Lage, VS 2010 für ein Projekt zu verwenden, und habe festgestellt, dass der folgende Code immer noch nicht mit dem nicht standardkonformen Compiler erstellt wird: #include <stdio.h> #include <stdlib.h> int main (void) { char buffer[512]; snprintf(buffer, sizeof(buffer), "SomeString"); return 0; } (Kompilierung fehlgeschlagen mit …

11
Warum ist printf mit einem einzelnen Argument (ohne Konvertierungsspezifizierer) veraltet?
In einem Buch, das ich lese, steht, dass printfmit einem einzigen Argument (ohne Konvertierungsspezifizierer) veraltet ist. Es wird empfohlen, zu ersetzen printf("Hello World!"); mit puts("Hello World!"); oder printf("%s", "Hello World!"); Kann mir jemand sagen warum printf("Hello World!");das falsch ist? In dem Buch steht, dass es Schwachstellen enthält. Was sind diese …

8
Printf-Breitenbezeichner zur Aufrechterhaltung der Genauigkeit des Gleitkommawerts
Gibt es einen printfBreitenbezeichner, der auf einen Gleitkomma- Bezeichner angewendet werden kann, der die Ausgabe automatisch auf die erforderliche Anzahl signifikanter Stellen formatiert, sodass beim erneuten Einscannen der Zeichenfolge der ursprüngliche Gleitkommawert erfasst wird? Angenommen, ich drucke a floatmit einer Genauigkeit von 2Dezimalstellen: float foobar = 0.9375; printf("%.2f", foobar); // …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.