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.

7
Verwirrung über die Array-Initialisierung in C.
Wenn Sie in der Sprache C ein Array wie folgt initialisieren: int a[5] = {1,2}; dann werden alle Elemente des Arrays, die nicht explizit initialisiert wurden, implizit mit Nullen initialisiert. Aber wenn ich ein Array wie dieses initialisiere: int a[5]={a[2]=1}; printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]); Ausgabe: …

7
C int Array auf Null zurücksetzen: der schnellste Weg?
Angenommen, wir haben ein T myarray[100]mit T = int, unsigned int, long long int oder unsigned long long int, was ist der schnellste Weg, um den gesamten Inhalt auf Null zurückzusetzen (nicht nur zur Initialisierung, sondern um den Inhalt in meinem Programm mehrmals zurückzusetzen). ? Vielleicht mit Memset? Gleiche Frage …
102 c++  c  arrays  memset 


4
Verwenden der C ++ - Bibliothek in C-Code
Ich habe eine C ++ - Bibliothek, die verschiedene Klassen zum Verwalten von Daten bereitstellt. Ich habe den Quellcode für die Bibliothek. Ich möchte die C ++ - API erweitern, um C-Funktionsaufrufe zu unterstützen, damit die Bibliothek gleichzeitig mit C-Code und C ++ - Code verwendet werden kann. Ich verwende …
102 c++  c  gcc  glibc 


7
Wie wird eine CRC32-Prüfsumme berechnet?
Vielleicht sehe ich es einfach nicht, aber CRC32 scheint entweder unnötig kompliziert oder unzureichend erklärt zu sein, wo immer ich es im Web finden kann. Ich verstehe, dass es der Rest einer nicht Carry-basierten arithmetischen Division des Nachrichtenwerts ist, geteilt durch das (Generator-) Polynom, aber die tatsächliche Implementierung davon entgeht …
102 c  checksum  crc32 

24
Warum verwenden Sie C nicht für Ihre Web-Apps?
Ich habe mir heute Morgen einige verschiedene Webserver angesehen, als ich auf G-WAN gestoßen bin . Soweit ich weiß, handelt es sich um einen in C geschriebenen Webserver, den Sie nutzen müssen, indem Sie Ihre Websites / Webapps in C schreiben. Ein klarer Vorteil ist die Geschwindigkeit, wie die G-WAN-Site …
101 php  c  web-applications 

16
Timer-Funktion zur Bereitstellung der Zeit in Nanosekunden mit C ++
Ich möchte die Zeit berechnen, die eine API benötigt hat, um einen Wert zurückzugeben. Die für eine solche Aktion benötigte Zeit liegt im Bereich von Nanosekunden. Da die API eine C ++ - Klasse / Funktion ist, verwende ich die Datei timer.h, um dasselbe zu berechnen: #include <ctime> #include <cstdio> …
101 c++  c  timer 

4
printf-Formatbezeichner für uint32_t und size_t
Ich habe folgendes size_t i = 0; uint32_t k = 0; printf("i [ %lu ] k [ %u ]\n", i, k); Beim Kompilieren wird folgende Warnung angezeigt: format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘uint32_t’ Als ich dies mit einer Schiene ausführte, bekam ich Folgendes: Format …
101 c  printf 

1
Was bedeutet [N… M] in C-Aggregat-Initialisierern?
Aus der sys.c- Zeile 123: void *sys_call_table[__NR_syscalls] = { [0 ... __NR_syscalls-1] = sys_ni_syscall, #include <asm/unistd.h> }; sys_call_tableist ein generischer Zeiger auf Arrays, das kann ich sehen. Was ist jedoch die Notation: [0 ... __NR_syscalls-1] Was ist das ...? EDIT: Ich habe hier einen weiteren C-Trick gelernt: #include <asm/unistd.h>Wird vorverarbeitet …
101 c  linux  kernel 


13
Versuchen Sie catch-Anweisungen in C.
Ich habe heute über die Try / Catch-Blöcke nachgedacht, die in anderen Sprachen existieren. Googelte eine Weile, aber ohne Ergebnis. Soweit ich weiß, gibt es in C kein Try / Catch. Gibt es jedoch eine Möglichkeit, sie zu "simulieren"? Klar, es gibt Assert und andere Tricks, aber nichts wie try …
101 c 

2
GCC -g vs -g3 GDB-Flag: Was ist der Unterschied?
Beim Kompilieren von C-Quellcode mit gcc oder Clang verwende ich immer das -gFlag, um Debugging-Informationen für gdb zu generieren. gcc -g -o helloworld helloworld.c Mir ist aufgefallen, dass einige Leute -g3stattdessen empfehlen . Was ist der Unterschied zwischen den -gund -g3Flags? Gibt es auch einen Unterschied zwischen -gund -ggdb?
101 c  debugging  gcc  gdb  clang 



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.