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
Exotische Architekturen, die den Normungsgremien am Herzen liegen
Ich weiß, dass die C- und C ++ - Standards viele Aspekte der Sprachimplementierung definiert lassen, nur weil es bei einer Architektur mit anderen Merkmalen sehr schwierig oder unmöglich wäre, einen standardkonformen Compiler dafür zu schreiben. Ich weiß, dass vor 40 Jahren jeder Computer seine eigene Spezifikation hatte. Ich kenne …
154 c++  c  architecture 

5
Noch erreichbares Leck von Valgrind erkannt
Alle in diesem Block genannten Funktionen sind Bibliotheksfunktionen. Wie kann ich diesen Speicherverlust beheben? Es ist in der Kategorie " Noch erreichbar " aufgeführt. (Es gibt 4 weitere, die sehr ähnlich sind, aber unterschiedliche Größen haben) 630 bytes in 1 blocks are still reachable in loss record 5 of 5 …
154 c  pthreads  valgrind 


6
NSLog den Methodennamen mit Objective-C im iPhone
Derzeit definieren wir uns einen erweiterten Protokollmechanismus, um den Klassennamen und die Quellzeilennummer des Protokolls auszudrucken. #define NCLog(s, ...) NSLog(@"<%@:%d> %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], \ __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__]) Zum Beispiel, wenn ich NCLog aufrufe (@ "Hallo Welt"); Die Ausgabe wird sein: <ApplicationDelegate:10>Hello world Jetzt möchte ich auch den Methodennamen …

11
~ x + ~ y == ~ (x + y) ist immer falsch?
Wird dieser Code immer als falsch ausgewertet? Beide Variablen sind Zweierkomplement-Ints. ~x + ~y == ~(x + y) Ich denke, es sollte eine Nummer geben, die die Bedingungen erfüllt. Ich habe versucht , die Zahlen zwischen Prüfung -5000und 5000doch nie erreicht Gleichheit. Gibt es eine Möglichkeit, eine Gleichung aufzustellen, um …

9
Funktionieren Klammern in C als Stapelrahmen?
Wenn ich eine Variable innerhalb eines neuen Satzes von geschweiften Klammern erstelle, ist diese Variable dann auf der schließenden Klammer vom Stapel gefallen oder hängt sie bis zum Ende der Funktion? Beispielsweise: void foo() { int c[100]; { int d[200]; } //code that takes a while return; } Wird dwährend …
153 c  memory  stack 

9
Was ist ein "Rückruf" in C und wie werden sie implementiert?
Nach der Lektüre, die ich gemacht habe, stützt sich Core Audio stark auf Rückrufe (und C ++, aber das ist eine andere Geschichte). Ich verstehe das Konzept (eine Art), eine Funktion einzurichten, die von einer anderen Funktion wiederholt aufgerufen wird, um eine Aufgabe zu erfüllen. Ich verstehe einfach nicht, wie …
153 c  callback 

14
Überprüfung auf NULL-Zeiger in C / C ++ [geschlossen]
Geschlossen . Diese Frage basiert auf Meinungen . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage, damit sie mit Fakten und Zitaten beantwortet werden kann, indem Sie diesen Beitrag bearbeiten . Geschlossen vor 5 Jahren . Verbessere diese Frage In einer kürzlich durchgeführten Codeüberprüfung …

13
Welche Tools gibt es für die funktionale Programmierung in C?
Ich habe in letzter Zeit viel darüber nachgedacht, wie man funktionale Programmierung in C ( nicht in C ++) durchführt. Offensichtlich ist C eine prozedurale Sprache und unterstützt die funktionale Programmierung von Haus aus nicht wirklich. Gibt es Compiler- / Spracherweiterungen, die der Sprache einige funktionale Programmierkonstrukte hinzufügen? GCC bietet …

13
Kann num ++ für 'int num' atomar sein?
Im Allgemeinen ist for int num, num++(oder ++num) als Lese-, Änderungs- und Schreiboperation nicht atomar . Aber ich sehe oft, dass Compiler, zum Beispiel GCC , den folgenden Code dafür generieren ( versuchen Sie es hier ): num++Können wir daraus schließen, dass Zeile 5, die einer Anweisung entspricht, in diesem …

2
Wie kann ich zweimal mit dem C-Präprozessor verketten und ein Makro wie in „arg ## _ ## MACRO“ erweitern?
Ich versuche, ein Programm zu schreiben, bei dem die Namen einiger Funktionen vom Wert einer bestimmten Makrovariablen mit einem Makro wie dem folgenden abhängen: #define VARIABLE 3 #define NAME(fun) fun ## _ ## VARIABLE int NAME(some_function)(int a); Leider sind die Makro - NAME()Kurven , dass in int some_function_VARIABLE(int a); eher, …

4
Was bedeutet "#define _GNU_SOURCE"?
Heute musste ich die basename()Funktion benutzen und das man 3 basename( hier ) gab mir eine seltsame Nachricht: Anmerkungen Es gibt zwei verschiedene Versionen von basename () - die oben beschriebene POSIX- Version und die GNU-Version , nach der man sucht #define _GNU_SOURCE #include <string.h> Ich frage mich, was das …
152 c  posix  gnu 

22
Fehlerbehandlung im C-Code
Was halten Sie für "Best Practice", wenn es darum geht, Fehler in einer C-Bibliothek auf konsistente Weise zu behandeln? Ich habe über zwei Möglichkeiten nachgedacht: Geben Sie immer den Fehlercode zurück. Eine typische Funktion würde folgendermaßen aussehen: MYAPI_ERROR getObjectSize(MYAPIHandle h, int* returnedSize); Die bieten immer einen Fehlerzeiger-Ansatz: int getObjectSize(MYAPIHandle h, …
152 c  error-handling 


8
Was ist __stdcall?
Ich lerne etwas über Win32-Programmierung und der WinMainPrototyp sieht folgendermaßen aus: int WINAPI WinMain ( HINSTANCE instance, HINSTANCE prev_instance, PSTR cmd_line, int cmd_show ) Ich war verwirrt darüber, wofür diese WINAPIKennung gedacht war und fand: #define WINAPI __stdcall Was macht das? Ich bin verwirrt darüber, dass ich nach einem Rückgabetyp …

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.