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
Wie überprüfen Sie, ob unter Windows in C ein Verzeichnis vorhanden ist?
Frage In einer Windows C-Anwendung möchte ich einen an eine Funktion übergebenen Parameter überprüfen, um sicherzustellen, dass der angegebene Pfad vorhanden ist. * Wie überprüfen Sie, ob unter Windows in C ein Verzeichnis vorhanden ist? * Ich verstehe, dass Sie in Rennbedingungen geraten können, in denen zwischen der Zeit, in …
73 c  windows  winapi 

2
Flüchtige Struktursemantik
Reicht es aus, eine Instanz einer strukturtypisierten Variablen als flüchtig zu deklarieren (wenn auf ihre Felder im neu eingegebenen Code zugegriffen wird), oder muss man bestimmte Felder der Struktur als flüchtig deklarieren? Anders ausgedrückt, was sind die semantischen Unterschiede (falls vorhanden) zwischen: typdef struct { uint8_t bar; } foo_t; volatile …
73 c  struct  volatile 

6
Abbildung eines numerischen Bereichs auf einen anderen
Mathe war nie meine Stärke in der Schule :( int input_start = 0; // The lowest number of the range input. int input_end = 254; // The largest number of the range input. int output_start = 500; // The lowest number of the range output. int output_end = 5500; // …
73 c  math  arduino 

4
Warum sollte man MACRO + 0! = 0 verwenden?
In meiner aktuellen Codebasis sehe ich folgendes Muster: #if SOMETHING_SUPPORTED+0 != 0 ... #endif Leider ist dies eine sehr alte Codebasis und niemand weiß, wie und warum sie begonnen hat. Ich denke, es hat in C angefangen und es wurde langsam mit Klassen in C konvertiert und jetzt tendiert es …
72 c++  c 

5
Ist die Maskierung vor der vorzeichenlosen Linksverschiebung in C / C ++ zu paranoid?
Diese Frage wird von mir motiviert, kryptografische Algorithmen (z. B. SHA-1) in C / C ++ zu implementieren, tragbaren plattformunabhängigen Code zu schreiben und undefiniertes Verhalten gründlich zu vermeiden . Angenommen, ein standardisierter Krypto-Algorithmus fordert Sie auf, Folgendes zu implementieren: b = (a << 31) & 0xFFFFFFFF wo aund bsind …

9
Warum kehrt die Funktion "noreturn" zurück?
Ich habe diese Frage zum noreturnAttribut gelesen , das für Funktionen verwendet wird, die nicht zum Aufrufer zurückkehren. Dann habe ich ein Programm in C gemacht. #include <stdio.h> #include <stdnoreturn.h> noreturn void func() { printf("noreturn func\n"); } int main() { func(); } Und Montage des Codes erzeugt unter Verwendung dieser …


4
Was bedeutet die Unmöglichkeit, Arrays zurückzugeben, in C?
Ich versuche nicht, die übliche Frage zu wiederholen, dass C keine Arrays zurückgeben kann, sondern sich etwas tiefer damit befasst. Wir können das nicht machen: char f(void)[8] { char ret; // ...fill... return ret; } int main(int argc, char ** argv) { char obj_a[10]; obj_a = f(); } Aber wir …
72 c 


2
Was ist eine Datei mit der Erweiterung .a?
Ich habe dies heruntergeladen: https://github.com/mongodb/mongo-c-driver Und jetzt versuche ich es in meinem C-Programm zu verwenden, aber ich weiß nicht, was ich mit den generierten .a-Dateien machen soll. Was sind Sie? Ich konnte keine Informationen finden, auch nicht im GCC-Handbuch. Und ich habe es so gebaut: scons --c99 Kann ich mit …



2
Implizite Regeln für die Typwerbung
Dieser Beitrag soll als FAQ zur impliziten Ganzzahl-Heraufstufung in C verwendet werden, insbesondere zur impliziten Heraufstufung, die durch die üblichen arithmetischen Konvertierungen und / oder die Ganzzahl-Heraufstufungen verursacht wird. Beispiel 1) Warum ergibt dies eine seltsame, große Ganzzahl und nicht 255? unsigned char x = 0; unsigned char y = …

13
Socket akzeptieren - "Zu viele geöffnete Dateien"
Ich arbeite an einem Schulprojekt, in dem ich einen Multithread-Server schreiben musste, und jetzt vergleiche ich ihn mit Apache, indem ich einige Tests dagegen durchführe. Ich verwende Autobobench, um dies zu unterstützen, aber nachdem ich einige Tests durchgeführt habe oder wenn ich eine zu hohe Rate (ca. 600+) für das …
72 c  sockets 

9
Überschreiben Sie einen Funktionsaufruf in C.
Ich möchte bestimmte Funktionsaufrufe an verschiedene APIs überschreiben, um die Aufrufe zu protokollieren, aber ich möchte möglicherweise auch Daten bearbeiten, bevor sie an die eigentliche Funktion gesendet werden. Angenommen, ich verwende eine Funktion, die getObjectNamein meinem Quellcode tausende Male aufgerufen wird . Ich möchte diese Funktion manchmal vorübergehend überschreiben, weil …

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.