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.

9
Strukturpolsterung und Verpackung
Erwägen: struct mystruct_A { char a; int b; char c; } x; struct mystruct_B { int b; char a; } y; Die Größen der Strukturen betragen 12 bzw. 8. Sind diese Strukturen gepolstert oder gepackt? Wann findet Polsterung oder Verpackung statt?
209 c  struct  structure  padding  packing 


6
typedef Array mit fester Länge
Ich muss einen 24-Bit-Datentyp definieren. Ich verwende char[3], um den Typ darzustellen. Kann ich typedef char[3]zu type24? Ich habe es in einem Codebeispiel versucht. Ich habe typedef char[3] type24;meine Header-Datei eingefügt. Der Compiler hat sich nicht darüber beschwert. Aber als ich eine Funktion void foo(type24 val) {}in meiner C-Datei definiert …
209 c  arrays  gcc  typedef 



15
Ausführungszeit des C-Programms
Ich habe ein C-Programm, das auf mehreren Prozessoren parallel ausgeführt werden soll. Ich muss in der Lage sein, die Ausführungszeit aufzuzeichnen (die zwischen 1 Sekunde und mehreren Minuten liegen kann). Ich habe nach Antworten gesucht, aber alle scheinen die Verwendung der clock()Funktion vorzuschlagen , bei der dann die Anzahl der …
208 c  benchmarking 

8
Gültige, aber wertlose Syntax im Switch-Case?
Durch einen kleinen Tippfehler habe ich versehentlich dieses Konstrukt gefunden: int main(void) { char foo = 'c'; switch(foo) { printf("Cant Touch This\n"); // This line is Unreachable case 'a': printf("A\n"); break; case 'b': printf("B\n"); break; case 'c': printf("C\n"); break; case 'd': printf("D\n"); break; } return 0; } Es scheint, dass …

25
Was genau ist ein C-Zeiger, wenn nicht eine Speicheradresse?
In einer seriösen Quelle über C werden nach Erörterung des &Bedieners die folgenden Informationen gegeben : ... Es ist ein bisschen bedauerlich, dass die Terminologie [Adresse von] erhalten bleibt, weil sie diejenigen verwirrt, die nicht wissen, worum es bei Adressen geht, und diejenigen irreführt, die dies tun: Das Nachdenken über …


17
Übergabe als Referenz in C.
Wenn C die Übergabe einer Variablen als Referenz nicht unterstützt, warum funktioniert dies? #include <stdio.h> void f(int *j) { (*j)++; } int main() { int i = 20; int *p = &i; f(p); printf("i = %d\n", i); return 0; } Ausgabe: $ gcc -std=c99 test.c $ a.exe i = 21




25
Ist es jemals vorteilhaft, 'goto' in einer Sprache zu verwenden, die Schleifen und Funktionen unterstützt? Wenn ja warum?
Ich habe lange den Eindruck gehabt, dass gotowenn möglich niemals verwendet werden sollte. Als ich neulich libavcodec (das in C geschrieben ist) durchgesehen habe, habe ich festgestellt, dass es mehrfach verwendet wird. Ist es jemals vorteilhaft, gotoin einer Sprache zu arbeiten, die Schleifen und Funktionen unterstützt? Wenn ja warum?


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.