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.


27
'do ... while' vs. 'while'
Mögliche Duplikate: While vs. Do While Wann sollte ich do-while anstelle von while-Schleifen verwenden? Ich programmiere jetzt schon eine Weile (2 Jahre Arbeit + 4,5 Jahre Abschluss + 1 Jahr Pre-College), und ich habe noch nie eine Do-While-Schleife verwendet, zu der ich im Kurs Einführung in die Programmierung nicht gezwungen …
83 c#  c++  c  while-loop  do-while 


9
"Lebenszeit" eines String-Literals in C.
Wäre der von der folgenden Funktion zurückgegebene Zeiger nicht unzugänglich? char *foo(int rc) { switch (rc) { case 1: return("one"); case 2: return("two"); default: return("whatever"); } } Die Lebensdauer einer lokalen Variablen in C / C ++ liegt also praktisch nur innerhalb der Funktion, oder? Was bedeutet, dass char* foo(int)der …

5
Grundlegendes zu INADDR_ANY für die Socket-Programmierung
Ich versuche einige Sockets zu programmieren und benutze sie daher auf der Serverseite htonl(INADDR_ANY). Soweit ich verstanden habe, scheint mir diese Funktion eine zufällige IP zu generieren (bin ich richtig?). Tatsächlich möchte ich meine Steckdose mit meiner binden localhost. Aber wenn ich das mache printf("%d",htonl(INADDR_ANY)); Ich bekomme 0 als Rückgabewert. …
83 c  sockets 


4
Unterschied zwischen Oberfläche und Textur (SDL / allgemein)
Kann mir jemand in einfachen Worten erklären, was der Unterschied zwischen Textur und Oberfläche ist? Ich sah es SDL2als SDL_Surfaceund verwendet SDL_Texture. SDL_Texturewird erstellt, aus SDL_Surfacedem wiederum aus Bild / Bitmap erstellt wird. Beide sind eine Sammlung von Pixeln. Aber ich sehe nicht den Hauptunterschied zwischen ihnen (hat etwas mit …
83 c  graphics  sdl  sdl-2 

5
Was verursacht den Fehler "Broken Pipe"?
Ich weiß, dass ein Rohrbruchfehler ausgelöst wird, wenn der Sockel auf der Peer-Seite geschlossen wird. In meinem Test habe ich jedoch festgestellt, dass ein sofortiger Sendeanruf auf dieser Seite, wenn die Peer-Seite geschlossen ist, nicht immer zu einem Rohrbruchfehler führt. Z.B: Wenn ich nach dem Schließen des Sockets auf der …
83 c  broken-pipe 

3
Warum den Rückgabewert von free auf void setzen?
Ich lese ein Buch ( Programmieren mit POSIX-Threads von Butenhof, 1997), das C verwendet, und bin auf die folgende Zeile gestoßen: (void)free(data); Hier dataist nur ein Zeiger auf eine zugewiesene Struktur, data = malloc(sizeof(my_struct_t)); Warum ist das Ergebnis der freeBesetzung void? Nach meinem Verständnis von C scheint dies aus zwei …
82 c  casting  free  void  legacy-code 

2
Switch-Case wird nach dem Auskommentieren einer nicht verwendeten Zeile nicht kompiliert
Hier ist mein Code: #include <stdio.h> #include <string.h> #include <stdlib.h> #include <netdb.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> int main (void) { struct addrinfo hints; memset (&hints, 0, sizeof hints); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_DGRAM; hints.ai_flags = AI_CANONNAME; struct addrinfo *res; getaddrinfo ("example.com", "http", &hints, &res); printf ("Host: %s\n", …
82 c 

2
Warum ist die Aussage "2i;" KEINEN Compilerfehler verursachen?
Stattdessen 2*ischrieb ich nachlässig 2i: int foo(int i) { 2i; return 2i; } Ich habe erwartet, dass der Compiler den Fehler abfängt. Aber das tat es nicht. Ist also 2ieine gültige Aussage in C? Wenn ja, was macht es? Verwirrt! Ich habe mit gcc Version 5.3.0 kompiliert und hier ist …
82 c  syntax 



6
gemeinsame globale Variablen in C.
Wie kann ich globale Variablen erstellen, die in C gemeinsam genutzt werden? Wenn ich es in eine Header-Datei lege, beschwert sich der Linker, dass die Variablen bereits definiert sind. Ist die einzige Möglichkeit, die Variable in einer meiner C-Dateien zu deklarieren und manuell externs oben in allen anderen C-Dateien einzufügen, …


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.