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 kann ich in CMake testen, ob der Compiler Clang ist?
Wir haben eine Reihe von plattformübergreifenden CMake-Build-Skripten und unterstützen das Erstellen mit Visual C ++ und GCC . Wir probieren Clang aus , aber ich kann nicht herausfinden, wie ich mit unserem CMake-Skript testen kann, ob der Compiler Clang ist oder nicht. Was soll ich testen, um festzustellen, ob der …
151 c++  c  cmake  clang 

8
Rückgabe eines Arrays mit C.
Ich bin relativ neu in C und brauche Hilfe bei Methoden, die mit Arrays umgehen. Ich komme aus der Java-Programmierung und bin es gewohnt, sagen int [] method()zu können, um ein Array zurückzugeben. Ich habe jedoch herausgefunden, dass Sie mit C Zeiger für Arrays verwenden müssen, wenn Sie sie zurückgeben. …
151 c  arrays  pointers  char 


4
Call Go-Funktionen von C.
Ich versuche, ein statisches Objekt zu erstellen, das in Go to interface mit einem C-Programm (z. B. einem Kernelmodul oder etwas anderem) geschrieben wurde. Ich habe Dokumentation zum Aufrufen von C-Funktionen von Go aus gefunden, aber ich habe nicht viel darüber gefunden, wie man in die andere Richtung geht. Was …

4
Warum frisst dieser Speicherfresser nicht wirklich Speicher?
Ich möchte ein Programm erstellen, das eine OOM-Situation (Out-of-Memory) auf einem Unix-Server simuliert. Ich habe diesen supereinfachen Speicherfresser erstellt: #include <stdio.h> #include <stdlib.h> unsigned long long memory_to_eat = 1024 * 50000; size_t eaten_memory = 0; void *memory = NULL; int eat_kilobyte() { memory = realloc(memory, (eaten_memory * 1024) + 1024); …


5
Wie man Clang zu llvm IR kompiliert
Ich möchte, dass clang meinen C/C++Code zu LLVMBytecode kompiliert und nicht zu einer ausführbaren Binärdatei. Wie kann ich das erreichen? Und wenn ich den LLVMBytecode erhalte , wie kann ich ihn verwenden, um ihn weiter in eine ausführbare Binärdatei zu kompilieren? Grundsätzlich möchte ich dem LLVMBytecode einen Teil meines eigenen …
150 c  llvm  clang 

12
Warum ist x [0]! = X [0] [0]! = X [0] [0] [0]?
Ich lerne ein wenig C ++ und kämpfe mit Zeigern. Ich verstehe, dass ich 3 Zeigerebenen haben kann, indem ich Folgendes erkläre: int *(*x)[5]; Das *xist also ein Zeiger auf ein Array von 5 Elementen, auf die Zeiger sind int. Auch weiß ich , dass x[0] = *(x+0);, x[1] = …
149 c++  c  arrays  pointers 

17
Was ist der Sinn von const-Zeigern?
Ich spreche nicht von Zeigern auf const-Werte, sondern von const-Zeigern selbst. Ich lerne C und C ++ über das Grundlegende hinaus und habe bis heute festgestellt, dass Zeiger wertmäßig an Funktionen übergeben werden, was Sinn macht. Dies bedeutet, dass ich innerhalb einer Funktion den kopierten Zeiger auf einen anderen Wert …
149 c++  c  pointers  const 

10
Standardalternative zum ## __ VA_ARGS__ Trick von GCC?
In C99 gibt es ein bekanntes Problem mit leeren Argumenten für verschiedene Makros. Beispiel: #define FOO(...) printf(__VA_ARGS__) #define BAR(fmt, ...) printf(fmt, __VA_ARGS__) FOO("this works fine"); BAR("this breaks!"); Die Verwendung von BAR()oben ist gemäß dem C99-Standard in der Tat falsch, da es erweitert wird auf: printf("this breaks!",); Beachten Sie das nachfolgende …

3
In TXT-Datei schreiben?
Wie kann ich ein kleines Stück Text in eine .txtDatei schreiben ? Ich habe über 3-4 Stunden gegoogelt, kann aber nicht herausfinden, wie es geht. fwrite(); hat so viele Argumente, und ich weiß nicht, wie ich es verwenden soll. Was ist die einfachste Funktion, wenn Sie nur einen Namen und …
149 c  linux 

8
Python-Programm in C / C ++ - Code konvertieren? [geschlossen]
Geschlossen . Diese Frage muss fokussierter sein . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so, dass sie sich nur auf ein Problem konzentriert, indem Sie diesen Beitrag bearbeiten . Geschlossen vor 3 Jahren . Verbessere diese Frage Ist es möglich, ein Python-Programm …
149 c++  python  c  code-generation 


5
Warum ist dieser Code anfällig für Pufferüberlaufangriffe?
int func(char* str) { char buffer[100]; unsigned short len = strlen(str); if(len >= 100) { return (-1); } strncpy(buffer,str,strlen(str)); return 0; } Dieser Code ist anfällig für einen Pufferüberlaufangriff, und ich versuche herauszufinden, warum. Ich denke, es hat damit zu tun, lendass man als a shortstatt als deklariert wird int, …

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.