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
Schlüsselwort "registrieren" in C?
Was macht das registerSchlüsselwort in C-Sprache? Ich habe gelesen, dass es zur Optimierung verwendet wird, aber in keinem Standard klar definiert ist. Ist es noch relevant und wenn ja, wann würden Sie es verwenden?
272 c  memory  keyword 

4
Unterschied zwischen gemeinsam genutzten Objekten (.so), statischen Bibliotheken (.a) und DLLs (.so)?
Ich war an einigen Debatten über Bibliotheken unter Linux beteiligt und möchte einige Dinge bestätigen. Nach meinem Verständnis (bitte korrigieren Sie mich, wenn ich falsch liege und ich werde meinen Beitrag später bearbeiten) gibt es zwei Möglichkeiten, Bibliotheken beim Erstellen einer Anwendung zu verwenden: Statische Bibliotheken (.a-Dateien): Zum Zeitpunkt der …
272 c++  c  linux  dll  linker 

13
Wie definiere ich einen Aufzählungstyp (Aufzählung) in C?
Ich bin mir nicht sicher, wie die Syntax für die Verwendung von C-Enums lautet. Ich habe folgenden Code: enum {RANDOM, IMMEDIATE, SEARCH} strategy; strategy = IMMEDIATE; Dies wird jedoch nicht mit folgendem Fehler kompiliert: error: conflicting types for ‘strategy’ error: previous declaration of ‘strategy’ was here Was mache ich falsch?
272 c  enums 



23
Wie erhalte ich das Verzeichnis, aus dem ein Programm ausgeführt wird?
Gibt es eine plattformunabhängige und eine dateisystemunabhängige Methode, um den vollständigen Pfad des Verzeichnisses abzurufen, aus dem ein Programm mit C / C ++ ausgeführt wird? Nicht zu verwechseln mit dem aktuellen Arbeitsverzeichnis. (Bitte schlagen Sie keine Bibliotheken vor, es sei denn, es handelt sich um Standardbibliotheken wie clib oder …
269 c++  c  working-directory 

30
Wie vermeide ich Wenn-Ketten?
Angenommen, ich habe diesen Pseudocode: bool conditionA = executeStepA(); if (conditionA){ bool conditionB = executeStepB(); if (conditionB){ bool conditionC = executeStepC(); if (conditionC){ ... } } } executeThisFunctionInAnyCase(); Funktionen executeStepXsollten genau dann ausgeführt werden, wenn die vorherigen erfolgreich sind. In jedem Fall sollte die executeThisFunctionInAnyCaseFunktion am Ende aufgerufen werden. Ich …

8
Was macht das Öffnen einer Datei eigentlich?
In allen Programmiersprachen (die ich mindestens verwende) müssen Sie eine Datei öffnen, bevor Sie sie lesen oder schreiben können. Aber was macht diese offene Operation eigentlich? Handbuchseiten für typische Funktionen sagen Ihnen eigentlich nichts anderes als "öffnet eine Datei zum Lesen / Schreiben": http://www.cplusplus.com/reference/cstdio/fopen/ https://docs.python.org/3/library/functions.html#open Durch die Verwendung der Funktion …
266 c  linux 

11
Ist bool ein nativer C-Typ?
Ich habe festgestellt, dass der Linux-Kernel-Code Bool verwendet, aber ich dachte, dass Bool ein C ++ - Typ ist. Ist bool eine Standard-C-Erweiterung (z. B. ISO C90) oder eine GCC-Erweiterung?
265 c  gcc  linux-kernel  boolean 

3
Warum existiert der Pfeiloperator (->) in C?
Der dot ( .) -Operator wird verwendet, um auf ein Mitglied einer Struktur zuzugreifen, während der Pfeiloperator ( ->) in C verwendet wird, um auf ein Mitglied einer Struktur zuzugreifen, auf das der betreffende Zeiger verweist. Der Zeiger selbst hat keine Mitglieder, auf die mit dem Punktoperator zugegriffen werden kann …
264 c  pointers  dereference 

14
Wie erstelle ich ein Array von Zeichenfolgen in C?
Ich versuche, ein Array von Zeichenfolgen in C zu erstellen. Wenn ich diesen Code verwende: char (*a[2])[14]; a[0]="blah"; a[1]="hmm"; gcc gibt mir "Warnung: Zuweisung vom inkompatiblen Zeigertyp". Was ist der richtige Weg, um dies zu tun? edit: Ich bin gespannt, warum dies eine Compiler-Warnung geben sollte, da in printf(a[1]);diesem Fall …
263 c  arrays  string 

10
Schnelle Obergrenze einer Ganzzahldivision in C / C ++
Gegebene ganzzahlige Werte x und geben sowohl yC als auch C ++ als Quotient q = x/yden Boden des Gleitkommaäquivalents zurück. Ich bin an einer Methode interessiert, stattdessen die Decke zurückzugeben. Zum Beispiel ceil(10/5)=2und ceil(11/5)=3. Der offensichtliche Ansatz beinhaltet etwas wie: q = x / y; if (q * y …
262 c++  c  algorithm  math 


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.