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.






18
Überprüfen, ob einem Zeiger Speicher zugewiesen ist oder nicht
Können wir überprüfen, ob ein an eine Funktion übergebener Zeiger in C mit Speicher belegt ist oder nicht? Ich habe meine eigene Funktion in C geschrieben, die einen Zeichenzeiger - buf [Zeiger auf einen Puffer] und size - buf_siz [Puffergröße] akzeptiert . Tatsächlich muss der Benutzer vor dem Aufrufen dieser …
74 c  pointers 

19
Ist jemals eine "do {…} while ()" - Schleife erforderlich?
Bjarne Stroustrup (C ++ - Ersteller) hat einmal gesagt, dass er "do / while" -Schleifen vermeidet und den Code lieber als "while" -Schleife schreibt. [Siehe Zitat unten.] Seit ich das gehört habe, habe ich festgestellt, dass dies wahr ist. Was sind deine Gedanken? Gibt es ein Beispiel, in dem ein …
74 c++  c  loops 

5
strcpy vs strdup
Ich habe gelesen, dass dies strcpyzum Kopieren einer Zeichenfolge dient, und strdupgebe einen Zeiger auf eine neue Zeichenfolge zurück, um die Zeichenfolge zu duplizieren. Könnten Sie bitte erklären, welche Fälle Sie bevorzugen strcpyund welche Fälle Sie bevorzugen strdup?
74 c  strcpy  strdup 

11
Datentypen mit fester Länge in C / C ++
Ich habe gehört, dass die Größe der Datentypen intje nach Plattform variieren kann. Meine erste Frage ist: Kann jemand ein Beispiel bringen, was schief geht, wenn das Programm int4 Bytes annimmt , auf einer anderen Plattform jedoch 2 Bytes? Eine andere Frage, die ich hatte, ist verwandt. Ich kenne Leute …
74 c++  c 

5
Statisch gegen global
Wenn ich eine C-Datei wie unten habe, was ist der Unterschied zwischen iund j? #include <stdio.h> #include <stdlib.h> static int i; int j; int main () { //Some implementation }
74 c  static  global 


10
Warum erhalten Sie in C „widersprüchliche Funktionstypen“?
Ich verwende den folgenden Code: char dest[5]; char src[5] = "test"; printf("String: %s\n", do_something(dest, src)); char *do_something(char *dest, const char *src) { return dest; } Die Implementierung von do_somethingist hier nicht wichtig. Wenn ich versuche, das Obige zu kompilieren, erhalte ich diese beiden Ausnahmen: Fehler: widersprüchliche Typen für 'do_something' (beim …
74 c  arrays 

5
Wie kann ich Aufrufe von assert () vollständig deaktivieren?
Mein Code ist voll von Anrufen an assert(condition). In der Debug-Version verwende ich, g++ -gdie meine Behauptungen auslöst. Unerwarteterweise werden dieselben Behauptungen auch in meiner Release-Version ausgelöst, die ohne -gOption kompiliert wurde . Wie kann ich meine Zusicherungen beim Kompilieren vollständig deaktivieren? Sollte ich NDEBUGin jedem Build, den ich produziere, …
74 c++  c  assert 

7
Wie kompiliere ich den von GCC generierten ASM?
Ich spiele mit ASM-Code herum und etwas stört mich. Ich kompiliere das: #include <stdio.h> int main(int argc, char** argv){ printf("Hello World\n"); return 0; } mit gcc file.c -S -o file.Sdieser erzeugt ein schönes kleines Stück asm - Code: .cstring LC0: .ascii "Hello World\0" .text .globl _main _main: LFB3: pushq %rbp …


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.