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.

2
Unix Domain Socket VS Named Pipes?
Nachdem ich mir ein Unix namens Socket angesehen hatte und dachte, sie wären Pipes. Ich schaute auf Namenspfeifen und sah keinen großen Unterschied. Ich habe gesehen, dass sie anders initialisiert wurden, aber das ist das einzige, was mir auffällt. Beide verwenden die C-Schreib- / Lesefunktion und arbeiten gleichermaßen mit AFAIK. …
122 c  linux 

8
Wie genau funktioniert die Schwanzrekursion?
Ich verstehe fast, wie die Schwanzrekursion funktioniert und welchen Unterschied sie zu einer normalen Rekursion hat. Ich verstehe nur nicht, warum es keinen Stapel erfordert, um sich seine Absenderadresse zu merken. // tail recursion int fac_times (int n, int acc) { if (n == 0) return acc; else return fac_times(n …

13
Finden von Duplikaten in O (n) Zeit und O (1) Raum
Eingabe: Bei einem Array von n Elementen, das Elemente von 0 bis n-1 enthält, wobei eine dieser Zahlen beliebig oft vorkommt. Ziel: Diese sich wiederholenden Zahlen in O (n) finden und nur konstanten Speicherplatz verwenden. Zum Beispiel sei n 7 und das Array {1, 2, 3, 1, 3, 0, 6}, …
121 c++  c  algorithm 

23
Was gehört zu einem Lehrmittel, um die ungerechtfertigten Annahmen zu demonstrieren, die Menschen in C / C ++ treffen?
Ich möchte ein kleines Lernwerkzeug für SO vorbereiten, das Anfängern (und fortgeschrittenen Programmierern) helfen soll, ihre ungerechtfertigten Annahmen in C, C ++ und ihren Plattformen zu erkennen und in Frage zu stellen. Beispiele: "ganze Zahlen wickeln sich um" "Jeder hat ASCII" "Ich kann einen Funktionszeiger in einer Leere speichern *" …


21
Warum wird die Adresse Null für den Nullzeiger verwendet?
In C (oder C ++) sind Zeiger etwas Besonderes, wenn sie den Wert Null haben: Es wird empfohlen, Zeiger nach dem Freigeben des Speichers auf Null zu setzen, da dies bedeutet, dass das erneute Freigeben des Zeigers nicht gefährlich ist. Wenn ich malloc aufrufe, wird ein Zeiger mit dem Wert …
121 c++  c  memory  pointers 

6
Socket connect () vs bind ()
Sowohl connect()als auch bind()Systemaufrufe verknüpfen den Socket-Dateideskriptor mit einer Adresse (normalerweise eine IP / Port-Kombination). Ihre Prototypen sind wie: - int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); und int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); Was ist der genaue Unterschied zwischen 2 Anrufen? Wann sollte man …





6
Warum ist das .bss-Segment erforderlich?
Was ich weiß ist, dass globale und statische Variablen im .dataSegment gespeichert sind und nicht initialisierte Daten im .bssSegment sind. Was ich nicht verstehe ist, warum wir ein dediziertes Segment für nicht initialisierte Variablen haben? Wenn einer nicht initialisierten Variablen zur Laufzeit ein Wert zugewiesen wurde, ist die Variable dann …

7
Cast to Int vs Floor
Gibt es einen Unterschied zwischen diesen: float foo1 = (int)(bar / 3.0); float foo2 = floor(bar / 3.0); Soweit ich weiß, haben beide Fälle das gleiche Ergebnis. Gibt es einen Unterschied im kompilierten Code?
120 c++  c  floating-point 

13
Aufrufstapel in C oder C ++ drucken
Gibt es eine Möglichkeit, den Aufrufstapel in einem laufenden Prozess in C oder C ++ bei jedem Aufruf einer bestimmten Funktion zu sichern? Was ich vorhabe, ist ungefähr so: void foo() { print_stack_trace(); // foo's body return } Wo print_stack_tracefunktioniert ähnlich wie callerin Perl. Oder sowas: int main (void) { …
120 c++  c  linux  callstack 


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.