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.



1
Was ist die Semantik überlappender Objekte in C?
Betrachten Sie die folgende Struktur: struct s { int a, b; }; Typischerweise hat 1 diese Struktur die Größe 8 und die Ausrichtung 4. Was ist, wenn wir zwei struct sObjekte erstellen (genauer gesagt, wir schreiben zwei solche Objekte in den zugewiesenen Speicher), wobei das zweite Objekt das erste überlappt? …

5
Die bitweise Operation führt zu einer unerwarteten Variablengröße
Kontext Wir portieren C-Code, der ursprünglich mit einem 8-Bit-C-Compiler für den PIC-Mikrocontroller kompiliert wurde. Eine gebräuchliche Redewendung, die verwendet wurde, um zu verhindern, dass vorzeichenlose globale Variablen (z. B. Fehlerzähler) auf Null zurückgesetzt werden, lautet wie folgt: if(~counter) counter++; Der bitweise Operator invertiert hier alle Bits und die Anweisung ist …

2
Schnellerer Teilbarkeitstest als% Operator?
Ich bemerkte eine merkwürdige Sache auf meinem Computer. * Der handschriftliche Teilbarkeitstest ist deutlich schneller als der %Bediener. Betrachten Sie das minimale Beispiel: * AMD Ryzen Threadripper 2990WX, GCC 9.2.0 static int divisible_ui_p(unsigned int m, unsigned int a) { if (m <= a) { if (m == a) { return …

1
gcc-10.0.1 Spezifischer Segfault
Ich habe ein R-Paket mit C-kompiliertem Code, das seit einiger Zeit relativ stabil ist und häufig gegen eine Vielzahl von Plattformen und Compilern (Windows / OSX / Debian / Fedora GCC / Clang) getestet wird. In jüngerer Zeit wurde eine neue Plattform hinzugefügt, um das Paket erneut zu testen: Logs …


9
'\ 0' und printf () in C.
In einem Einführungskurs in C habe ich gelernt, dass beim Speichern die Zeichenfolgen \0am Ende mit Nullzeichen gespeichert werden . Aber was ist, wenn ich eine Zeichenfolge drucken wollte? Sagen Sie, printf("hello")obwohl ich festgestellt habe, dass dies nicht mit \0der folgenden Anweisung endet printf("%d", printf("hello")); Output: 5 Dies scheint jedoch …
21 c  printf  stdout  c-strings 



3
Die statische int arr [10] -Speicheradresse endet immer mit 060
Ich habe ein AC-Programm, das so aussieht Haupt c #include <stdio.h> #define SOME_VAR 10 static int heap[SOME_VAR]; int main(void) { printf("%p", heap); return 0; } und gibt dies aus, wenn ich das kompilierte Programm einige Male ausführe 0x58aa7c49060 0x56555644060 0x2f8d1f8e060 0x92f58280060 0x59551c53060 0xd474ed6e060 0x767c4561060 0xf515aeda060 0xbe62367e060 Warum endet es immer …
17 c  arrays  memory 

1
Warum ist die Adresse von __libc_start_main in GDB immer dieselbe, obwohl ASLR aktiviert ist?
Breakpoint 1, 0x00007ffff7de8060 in __libc_start_main () from /usr/lib/libc.so.6 (gdb) r The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /home/firstlove/projects/org-ioslide/example/a.out Breakpoint 1, 0x00007ffff7de8060 in __libc_start_main () from /usr/lib/libc.so.6 (gdb) r The program being debugged has been started already. Start it …
16 c  linux  gdb  libc  aslr 


1
Warum ist np.dot ungenau? (n-dim Arrays)
Angenommen, wir nehmen np.dotzwei 'float32'2D-Arrays: res = np.dot(a, b) # see CASE 1 print(list(res[0])) # list shows more digits [-0.90448684, -1.1708503, 0.907136, 3.5594249, 1.1374011, -1.3826287] Zahlen. Außer, sie können sich ändern: Fall 1 : Scheibea np.random.seed(1) a = np.random.randn(9, 6).astype('float32') b = np.random.randn(6, 6).astype('float32') for i in range(1, len(a)): print(list(np.dot(a[:i], …
15 python  c  arrays  numpy  precision 


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.