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.


24
Nützliche GCC-Flags für C.
Welche anderen wirklich nützlichen, aber weniger bekannten Compiler-Flags gibt es neben dem Setzen -Wallund Setzen -std=XXXfür die Verwendung in C? Ich bin besonders an zusätzlichen Warnungen interessiert und / oder daran, Warnungen in einigen Fällen in Fehler umzuwandeln, um versehentliche Typinkongruenzen absolut zu minimieren.
157 c  gcc  compiler-flags 

8
Was ist die C-Laufzeitbibliothek?
Was ist eigentlich eine C-Laufzeitbibliothek und wofür wird sie verwendet? Ich habe gesucht, gegoogelt wie ein Teufel, aber ich konnte nichts Besseres als das von Microsoft finden: "Die Microsoft-Laufzeitbibliothek bietet Programmierroutinen für das Microsoft Windows-Betriebssystem. Diese Routinen automatisieren viele gängige Programmieraufgaben, die nicht von bereitgestellt werden die Sprachen C und …
157 c  runtime 

11
memcpy () vs memmove ()
Ich versuche, den Unterschied zwischen memcpy()und zu verstehen memmove(), und ich habe den Text gelesen, der memcpy()sich nicht um die überlappende Quelle und das überlappende Ziel memmove()kümmert. Wenn ich diese beiden Funktionen jedoch auf überlappenden Speicherblöcken ausführe, ergeben beide das gleiche Ergebnis. Nehmen Sie zum Beispiel das folgende MSDN-Beispiel auf …
157 c  memcpy  memmove 

22
Objektorientierung in C.
Was wäre eine Reihe von raffinierten Präprozessor-Hacks (ANSI C89 / ISO C90-kompatibel), die eine hässliche (aber verwendbare) Objektorientierung in C ermöglichen? Ich bin mit einigen verschiedenen objektorientierten Sprachen vertraut. Antworten Sie daher bitte nicht mit Antworten wie "Learn C ++!". Ich habe " Objektorientierte Programmierung mit ANSI C " (Vorsicht: …
157 c  oop  object 


9
Verwendung der C-Socket-API in C ++ unter z / OS
Ich habe Probleme der C - Sockets API an die Arbeit richtig in C++auf z/OS. Obwohl ich einschließe sys/socket.h, erhalte ich immer noch Fehler bei der Kompilierung, die mir mitteilen, dass dies AF_INETnicht definiert ist . Vermisse ich etwas Offensichtliches oder hängt dies damit zusammen, dass z/OSmeine Probleme viel komplizierter …
157 c++  c  sockets  mainframe  zos 

9
Warum bzero over memset verwenden?
Programmierung Klasse in einem System Ich habe diesen Vorsemesters, wir hatten einen einfaches Client / Server in C zu implementieren , wenn dem structs Initialisierung wie sock_addr_inoder char - Puffers (die wir verwenden , um Daten zurück zu senden und her zwischen Client und Server) der Professor hat uns angewiesen, …

23
Setzen der Variablen nach free auf NULL
In meiner Firma gibt es eine Codierungsregel, die besagt, dass die Variable nach dem Freigeben von Speicher auf zurückgesetzt wird NULL. Zum Beispiel ... void some_func () { int *nPtr; nPtr = malloc (100); free (nPtr); nPtr = NULL; return; } Ich habe das Gefühl, dass in Fällen wie dem …


5
Inkompatible implizite Deklaration der eingebauten Funktion 'malloc'
Ich erhalte diesen Fehler: Warnung: Inkompatible implizite Deklaration der eingebauten Funktion 'malloc' Ich versuche das zu tun: fileinfo_list* tempList = malloc(sizeof(fileinfo_list)); Nur als Referenz wird folgende Struktur verwendet: typedef struct { fileinfo** filedata; size_t nFiles; size_t size; size_t fileblock; } fileinfo_list; Ich sehe nichts falsch an dem, was ich getan …
155 c  struct  malloc 

21
Geteilte Zeichenfolge mit Trennzeichen in C.
Wie schreibe ich eine Funktion zum Teilen und Zurückgeben eines Arrays für einen String mit Trennzeichen in der Programmiersprache C? char* str = "JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC"; str_split(str,',');
155 c  string  split 

7
'float' vs. 'doppelte' Präzision
Der Code float x = 3.141592653589793238; double z = 3.141592653589793238; printf("x=%f\n", x); printf("z=%f\n", z); printf("x=%20.18f\n", x); printf("z=%20.18f\n", z); gibt Ihnen die Ausgabe x=3.141593 z=3.141593 x=3.141592741012573242 z=3.141592653589793116 Dabei steht in der dritten Ausgabezeile 741012573242Müll und in der vierten Zeile 116Müll. Haben Doppel immer 16 signifikante Zahlen, während Floats immer 7 signifikante …
155 c  floating-point 

5
Hängt die Bitverschiebung von der Endianness ab?
Angenommen, ich habe die Nummer 'numb'=1025 [00000000 00000000 00000100 00000001]dargestellt: Auf Little-Endian-Maschine: 00000001 00000100 00000000 00000000 Auf Big-Endian-Maschine: 00000000 00000000 00000100 00000001 Wenn ich nun Left Shift auf 10 Bits anwende (dh: numb << = 10), sollte ich Folgendes haben: [A] Auf Little-Endian-Maschine: Wie ich in GDB bemerkt habe, macht …
155 c  endianness 

9
Wo im Speicher sind meine Variablen in C gespeichert?
Unter Berücksichtigung der Tatsache, dass der Speicher in vier Segmente unterteilt ist: Daten, Heap, Stack und Code, wo globale Variablen, statische Variablen, konstante Datentypen, lokale Variablen (in Funktionen definiert und deklariert), Variablen (in Hauptfunktion), Zeiger und dynamisch zugewiesener Speicherplatz (mit malloc und calloc) im Speicher gespeichert werden? Ich denke, sie …

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.