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.

5
Ich möchte den Python-Quellcode lesen. Wo soll ich anfangen [geschlossen]
Diese Frage passt derzeit nicht zu unserem Q & A-Format. Wir erwarten, dass die Antworten durch Fakten, Referenzen oder Fachwissen gestützt werden, aber diese Frage wird wahrscheinlich zu Debatten, Argumenten, Umfragen oder erweiterten Diskussionen führen. Wenn Sie der Meinung sind, dass diese Frage verbessert und möglicherweise erneut geöffnet werden kann, …
78 python  c 




8
Subtrahieren von gepackten 8-Bit-Ganzzahlen in einer 64-Bit-Ganzzahl von 1 parallel, SWAR ohne Hardware-SIMD
Wenn ich eine 64-Bit-Ganzzahl habe, die ich als Array gepackter 8-Bit-Ganzzahlen mit 8 Elementen interpretiere. Ich muss die Konstante 1von jeder gepackten Ganzzahl subtrahieren, während ich den Überlauf behandle, ohne dass das Ergebnis eines Elements das Ergebnis eines anderen Elements beeinflusst. Ich habe diesen Code im Moment und er funktioniert, …
77 c++  c  bit-manipulation  simd  swar 

9
Warum initialisiert malloc die Werte in gcc auf 0?
Vielleicht ist es von Plattform zu Plattform unterschiedlich, aber Wenn ich mit gcc kompiliere und den folgenden Code ausführe, erhalte ich in meinem Ubuntu 11.10 jedes Mal 0. #include <stdio.h> #include <stdlib.h> int main() { double *a = (double*) malloc(sizeof(double)*100) printf("%f", *a); } Warum verhält sich Malloc so, obwohl es …
77 c  linux  gcc  malloc 

7
Wie benutzt man nanosleep () in C? Was sind "tim.tv_sec" und "tim.tv_nsec"?
Was ist die Verwendung von tim.tv_secund tim.tv_nsecim Folgenden? Wie kann ich die Ausführung für 500000Mikrosekunden in den Ruhezustand versetzen ? #include <stdio.h> #include <time.h> int main() { struct timespec tim, tim2; tim.tv_sec = 1; tim.tv_nsec = 500; if(nanosleep(&tim , &tim2) < 0 ) { printf("Nano sleep system call failed \n"); …
77 c  posix  sleep 

4
Ist das Verhalten beim Subtrahieren von zwei NULL-Zeigern definiert?
Ist die Differenz zweier nicht ungültiger Zeigervariablen definiert (gemäß C99 und / oder C ++ 98), wenn beide NULLbewertet werden? Angenommen, ich habe eine Pufferstruktur, die folgendermaßen aussieht: struct buf { char *buf; char *pwrite; char *pread; } ex; Sprich ex.bufauf ein Array oder einen malloc'ed Speicher. Wenn mein Code …
77 c++  c  c99  c89 

10
Ist C Open Source?
Dies ist wahrscheinlich eine dumme Frage, aber ich habe mich eine Weile darüber gewundert. Hat C (oder eine andere Low-Level-Sprache) überhaupt eine Quelle oder ist der Compiler der Teil, der "die ganze Arbeit erledigt", einschließlich des Parsens? Wenn ja, könnten verschiedene Compiler nicht unterschiedliche C-Dialekte haben? Wo spielt die stdlib …

3
Warum ist ein Point-to-Volatile-Zeiger wie „volatile int * p“ nützlich?
volatilesoll den Compiler anweisen, die Referenz nicht zu optimieren, damit bei jedem Lesen / Schreiben nicht der im Register gespeicherte Wert verwendet wird, sondern ein echter Speicherzugriff erfolgt. Ich kann verstehen, dass es für eine gewöhnliche Variable nützlich ist, verstehe aber nicht, wie volatilesich ein Zeiger auswirkt. volatile int *p …
77 c  pointers  volatile 

3
printf Anomalie nach "fork ()"
Betriebssystem: Linux, Sprache: pure C. Ich lerne C-Programmierung im Allgemeinen und C-Programmierung unter UNIX in einem speziellen Fall. Ich habe printf()nach einem fork()Aufruf ein seltsames (für mich) Verhalten der Funktion festgestellt . Code #include <stdio.h> #include <system.h> int main() { int pid; printf( "Hello, my pid is %d", getpid() ); …
77 c  linux  unix  printf  fork 

1
Was bedeutet diese Valgrind-Warnung? - Warnsatz Adressbereich Dauerwellen
Als ich mein Programm gegen valgrind ausführte, wurde die folgende Warnung angezeigt. Warning: set address range perms: large range [0x4d59d040, 0x6159d040) (undefined) Warning: set address range perms: large range [0x194f7030, 0x2d4f7050) (noaccess) Warning: set address range perms: large range [0x3959d030, 0x6159d050) (noaccess) Nach einigem googeln habe ich hier festgestellt , …
77 c  memory  valgrind 

15
Wann ist eine ganzzahlige <-> Zeigerumwandlung tatsächlich korrekt?
Die allgemeine Folklore sagt: Das Typsystem existiert aus einem Grund. Ganzzahlen und Zeiger sind unterschiedliche Typen. Das Umsetzen zwischen ihnen ist in den meisten Fällen ein Fehlverhalten, kann auf einen Entwurfsfehler hinweisen und sollte vermieden werden. Selbst wenn eine solche Besetzung durchgeführt wird, werden keine Annahmen über die Größe von …
77 c++  c  pointers  casting 

3
"Strlen (s1) - strlen (s2)" ist niemals kleiner als Null
Ich schreibe gerade ein C-Programm, das häufige Vergleiche der Zeichenfolgenlängen erfordert, daher habe ich die folgende Hilfsfunktion geschrieben: int strlonger(char *s1, char *s2) { return strlen(s1) - strlen(s2) &gt; 0; } Ich habe festgestellt, dass die Funktion auch dann true zurückgibt, wenn s1sie kürzer als ist s2. Kann jemand bitte …
77 c  string  debugging  unsigned 

13
Ungewöhnliche Verwendung der .h-Datei in C.
Beim Lesen des Artikels über das Filtern habe ich eine seltsame Verwendung von .hDateien festgestellt - verwenden Sie diese zum Füllen von Koeffizientenarrays: #define N 100 // filter order float h[N] = { #include "f1.h" }; //insert coefficients of filter float x[N]; float y[N]; short my_FIR(short sample_data) { float result …
77 c++  c 

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.