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.


1
Was macht Java einfacher zu analysieren als C?
Ich bin mit der Tatsache vertraut, dass die Grammatiken von C und C ++ kontextsensitiv sind , und insbesondere benötigen Sie einen "Lexer-Hack" in C. Andererseits habe ich den Eindruck, dass Sie nur Java analysieren können 2 Zeichen Vorausschau, trotz erheblicher Ähnlichkeit zwischen den beiden Sprachen. Was müssten Sie an …
90 java  c  parsing  grammar 


17
Switch-Anweisung mit Rückgabe - Code-Korrektheit
Angenommen, ich habe Code in C mit ungefähr dieser Struktur: switch (something) { case 0: return "blah"; break; case 1: case 4: return "foo"; break; case 2: case 3: return "bar"; break; default: return "foobar"; break; } Natürlich sind die breaks nicht notwendig, damit der Code korrekt ausgeführt wird, aber …

5
Wie lässt man backtrace () / backtrace_symbols () die Funktionsnamen drucken?
Das Linux-spezifische backtrace()und backtrace_symbols()ermöglicht es Ihnen, eine Aufrufverfolgung des Programms zu erstellen. Es werden jedoch nur Funktionsadressen gedruckt, nicht deren Namen für mein Programm. Wie kann ich sie dazu bringen, auch die Funktionsnamen zu drucken? Ich habe versucht , mit dem Programm zusammenzustellen -gsowie -ggdb. Der folgende Testfall druckt nur …
90 c  linux  debugging  backtrace 

12
C Speicherverwaltung
Ich habe immer gehört, dass man in C wirklich darauf achten muss, wie man den Speicher verwaltet. Und ich fange immer noch an, C zu lernen, aber bisher musste ich überhaupt keine Speicherverwaltungsaktivitäten durchführen. Ich stellte mir immer vor, Variablen freigeben und alle möglichen hässlichen Dinge tun zu müssen. Dies …
90 c  memory 

29
Testen von Zeigern auf Gültigkeit (C / C ++)
Gibt es eine Möglichkeit (natürlich programmatisch) festzustellen, ob ein bestimmter Zeiger "gültig" ist? Das Überprüfen auf NULL ist einfach, aber was ist mit Dingen wie 0x00001234? Beim Versuch, diese Art von Zeiger zu dereferenzieren, tritt eine Ausnahme / ein Absturz auf. Eine plattformübergreifende Methode wird bevorzugt, aber auch plattformspezifisch (für …
90 c++  c  validation  pointers  null 

1
Wandeln Sie hexadezimale Informationen mit einem Linux-Befehl in binäre Informationen um
Ich habe diese Binärdatei auf meinem Linux-System ... udit@udit-Dabba ~ $ cat file.enc Salted__s�bO��<0�F���Jw!���]�:`C�LKȆ�l Mit dem Befehl hexdump sehe ich seine Informationen wie folgt: udit@udit-Dabba ~ $ hexdump -C file.enc 00000000 53 61 6c 74 65 64 5f 5f 1b 73 a1 62 4f 15 be f6 |Salted__.s.bO...| 00000010 3c …

5
gdb: "Es wird keine Symboltabelle geladen"
Ich erhalte immer wieder diese Fehlermeldung, wenn ich versuche, einen Haltepunkt in gdb hinzuzufügen. Ich habe diese Befehle zum Kompilieren verwendet: gcc -g main.c utmpib2.c -o main.o and: cc -g main.c utmpib2.c -o main.o and also: g++ -g main.c utmpib2.c -o main.o Ich habe auch "-ggdb" anstelle von "-g" versucht …
90 c  gdb 

3
Verketten Sie int mit C Preprocessor mit String
Ich versuche herauszufinden, wie ich mit dem C- Präprozessor ein #define'd int mit einem #define' d-String verketten kann . Mein Compiler ist GCC 4.1 unter CentOS 5. Die Lösung sollte auch für MinGW funktionieren. Ich möchte eine Versionsnummer an eine Zeichenfolge anhängen, aber die einzige Möglichkeit, sie zum Laufen zu …

7
Ordnen Sie ein 2D-Array einem 1D-Array zu
Ich möchte ein 2D-Array mit einem 1D-Array darstellen. Eine Funktion übergibt die beiden Angaben (x, y) und den zu speichernden Wert. Diese beiden Angaben würden ein einzelnes Element eines 1D-Arrays darstellen und entsprechend einstellen. Ich weiß, dass das 1D-Array die Größe arrayWidth × arrayHeight haben muss, aber ich weiß nicht, …

10
minimaler doppelter Wert in C / C ++
Gibt es eine Standard- und / oder tragbare Methode, um den kleinsten negativen Wert (z. B. negative Unendlichkeit) in einem C (++) -Programm darzustellen? DBL_MIN in float.h ist die kleinste positive Zahl.
90 c++  c  math 


6
Produzieren Compiler besseren Code für Do-While-Schleifen als für andere Arten von Schleifen?
In der zlib-Komprimierungsbibliothek (die unter anderem im Chromium-Projekt verwendet wird) gibt es einen Kommentar, der impliziert, dass eine Do-While-Schleife in C auf den meisten Compilern "besseren" Code generiert. Hier ist der Codeausschnitt, in dem er angezeigt wird. do { } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) …

8
Terminalbreite in C ermitteln?
Ich habe nach einer Möglichkeit gesucht, die Terminalbreite aus meinem C-Programm heraus zu ermitteln. Was mir immer wieder einfällt, ist etwas in der Art von: #include <sys/ioctl.h> #include <stdio.h> int main (void) { struct ttysize ts; ioctl(0, TIOCGSIZE, &ts); printf ("lines %d\n", ts.ts_lines); printf ("columns %d\n", ts.ts_cols); } Aber jedes …
89 c  linux  terminal  width 

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.