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.

11
Warum sollten Sie das Schlüsselwort const verwenden, wenn Sie bereits wissen, dass die Variable konstant sein sollte?
Viele der Bücher, die ich lese, verwenden Schlüsselwörter, constwenn der Wert einer Variablen nicht geändert werden soll. Abgesehen davon, dass Sie den Lesern des Codes mitteilen, dass Sie beim Ändern dieser Variablen Fehler verursachen können (Sie können dazu Kommentare verwenden), warum benötigen Sie dieses Schlüsselwort, um Teil einer Programmiersprache zu …
70 c++  c  constants  keyword 

3
Was bedeutet das Linux __user-Makro?
Ich hatte gehofft, jemand könnte die Nuancen des in der Linux-Kernel-Quelle verwendeten __user-Makros erklären. Zunächst das Makro: # define __user __attribute__((noderef, address_space(1))) Nach einigem googeln habe ich nun gelesen, dass man mit diesem Makro einen Zeiger als zum Benutzeradressraum gehörend festlegen kann und dass er nicht dereferenziert werden sollte. Ich …


5
Ist es möglich, eine C-Funktion von C # .Net aus aufzurufen?
Ich habe eine C lib und möchte die Funktion in dieser Bibliothek aus der C # -Anwendung aufrufen. Ich habe versucht, einen C ++ / CLI-Wrapper für die C lib zu erstellen, indem ich die C lib-Datei als Linker-Eingabe und die Quelldateien als zusätzliche Abhängigkeiten hinzugefügt habe. Gibt es einen …
70 c  c#-4.0  interop 

13
Ist #define in Industriestandards verboten?
Ich bin ein erstes Jahr Informatik - Student und mein Professor sagte , #defineist in den Industriestandards verboten zusammen mit #if, #ifdef, #else, und ein paar andere Präprozessordirektiven. Er benutzte das Wort "verboten" wegen unerwarteten Verhaltens. Ist das richtig? Wenn ja warum? Gibt es tatsächlich Standards, die die Verwendung dieser …

13
clock_gettime Alternative unter Mac OS X.
Beim Kompilieren eines Programms, das ich unter Mac OS X geschrieben habe, nachdem ich die erforderlichen Bibliotheken über MacPorts installiert habe, wird folgende Fehlermeldung angezeigt: In function 'nanotime': error: 'CLOCK_REALTIME' undeclared (first use in this function) error: (Each undeclared identifier is reported only once error: for each function it appears …
68 c  macos  time  clock 



3
Multithreading-Unterstützung in c11
Der neue C11-Standard bietet Unterstützung für Multithreading. Meine Fragen sind etwas abwechslungsreich, aber definitiv zu beantworten. Ich habe mir den Entwurf für C11 n1570 angesehen . Es sagt: Unterstützung für mehrere Ausführungsthreads, einschließlich eines verbesserten Speichersequenzierungsmodells, atomarer Objekte und threadlokaler Speicher ( <stdatomic.h>und <threads.h>) Was ist das verbesserte Speichersequenzierungsmodell ? …
68 c  multithreading  c11 

2
Wie erstelle ich einen Prozess-Daemon?
Ich versuche zu verstehen, wie ich mein Programm zu einem Daemon machen kann. Einige Dinge, auf die ich gestoßen bin, sind: Im Allgemeinen führt ein Programm die folgenden Schritte aus, um ein Daemon zu werden: Rufen Sie an fork( ). Rufen Sie im übergeordneten Element an exit( ). Dadurch wird …

1
Delphi XE6 Link C-Code in iOS
Ich habe eine App auf Android mit Delphi XE6 erstellt, für die C-Code erforderlich ist. Unter iOS kann ich es jedoch nicht zum Laufen bringen. Ich vermute, dass das Problem mit dem Arm- / Daumenstatus zusammenhängt, bin mir aber nicht sicher. In beiden Systemen ist es kein Problem, den C-Code …
68 ios  c  delphi  pascal  delphi-xe6 


4
Was ist die Notwendigkeit von leeren Klammern '{}' am Ende eines Arrays von Strukturen?
Ich habe einen C- Code im Linux-Kernel getroffen: static struct ctl_table ip_ct_sysctl_table[] = { { .procname = "ip_conntrack_max", .maxlen = sizeof(int), .mode = 0644, .proc_handler = proc_dointvec, }, // ... { .procname = "ip_conntrack_log_invalid", .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = proc_dointvec_minmax, .extra1 = &log_invalid_proto_min, .extra2 = &log_invalid_proto_max, …

4
Was bedeutet ((void (*) ()) buf) (); bedeuten?
Ich löse eine binäre Exploitation-Herausforderung auf picoCTF und bin auf diesen Code gestoßen: ((void (*)())buf)(); Wo bufist ein Zeichenarray? Ich habe die Herausforderung gelöst, kann aber nicht verstehen, was genau es tut. Ich habe mir diesen Thread angesehen, konnte ihn aber nicht erkennen. Was heißt ((void (*)())buf)();das


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.