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.


7
Warum nur ein Makro definieren, wenn es noch nicht definiert ist?
In unserer gesamten C-Code-Basis wird jedes Makro folgendermaßen definiert: #ifndef BEEPTRIM_PITCH_RATE_DEGPS #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #endif #ifndef BEEPTRIM_ROLL_RATE_DEGPS #define BEEPTRIM_ROLL_RATE_DEGPS 0.2f #endif #ifndef FORCETRIMRELEASE_HOLD_TIME_MS #define FORCETRIMRELEASE_HOLD_TIME_MS 1000.0f #endif #ifndef TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS #define TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS 50.0f #endif Was ist der Grund für diese Definitionsprüfungen, anstatt nur die Makros zu definieren? #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #define …

6
Wann sollte ich malloc in C verwenden und wann nicht?
Ich verstehe, wie malloc () funktioniert. Meine Frage ist, ich werde solche Dinge sehen: #define A_MEGABYTE (1024 * 1024) char *some_memory; size_t size_to_allocate = A_MEGABYTE; some_memory = (char *)malloc(size_to_allocate); sprintf(some_memory, "Hello World"); printf("%s\n", some_memory); free(some_memory); Der Kürze halber habe ich die Fehlerprüfung weggelassen. Meine Frage ist, können Sie das nicht …

8
Was ist eine Trampolinfunktion?
Während der letzten Diskussionen bei der Arbeit bezog sich jemand auf eine Trampolinfunktion. Ich habe die Beschreibung bei Wikipedia gelesen . Es reicht aus, einen allgemeinen Überblick über die Funktionalität zu geben, aber ich möchte etwas Konkreteres. Haben Sie einen einfachen Codeausschnitt, der ein Trampolin illustriert?

6
Was macht extern inline?
Ich verstehe, dass dies inlinefür sich genommen ein Vorschlag für den Compiler ist und nach eigenem Ermessen die Funktion einbinden kann oder nicht, und dass er auch verknüpfbaren Objektcode erzeugt. Ich denke, dass static inlinedies dasselbe tut (kann oder kann nicht inline sein), aber keinen verlinkbaren Objektcode erzeugt, wenn es …



3
Gibt es Maschinen, bei denen sizeof (char)! = 1 oder mindestens CHAR_BIT> 8 ist?
Overа этот вопрос есть ответы на Stapelüberlauf на русском : Кто-нибудь встречал в своей практике sizeof (char)! = 1? Gibt es Maschinen (oder Compiler), wo sizeof(char) != 1? Sagt der C99-Standard , dass sizeof(char)bei der Implementierung der Standardkonformität genau 1 sein muss? Wenn ja, geben Sie mir bitte die Abschnittsnummer …
93 c  char  standards  sizeof  c99 


7
Mehrere von pthread_create () aufgerufene Funktionsargumente?
Ich muss mehrere Argumente an eine Funktion übergeben, die ich in einem separaten Thread aufrufen möchte. Ich habe gelesen, dass der typische Weg, dies zu tun, darin besteht, eine Struktur zu definieren, der Funktion einen Zeiger darauf zu übergeben und sie für die Argumente zu dereferenzieren. Ich kann dies jedoch …
93 c  pthreads 


4
C libcurl wird in einen String ausgegeben
Ich möchte das Ergebnis dieser Curl-Funktion in einer Variablen speichern. Wie kann ich das tun? #include <stdio.h> #include <curl/curl.h> int main(void) { CURL *curl; CURLcode res; curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "curl.haxx.se"); res = curl_easy_perform(curl); /* always cleanup */ curl_easy_cleanup(curl); } return 0; } danke, ich habe es …
93 c  libcurl 

7
'uint32_t' Bezeichner nicht gefunden Fehler
Ich portiere Code von Linux C nach Visual C ++ für Windows. Visual C ++ weiß es nicht, #include <stdint.h>also habe ich es auskommentiert. Später fand ich viele dieser 'uint32_t': identifier not foundFehler. Wie kann es gelöst werden?
93 c++  c  visual-c++ 


2
Was ist das Ergebnis von + = in C und C ++?
Ich habe folgenden Code: #include <stdio.h> int main(int argc, char **argv) { int i = 0; (i+=10)+=10; printf("i = %d\n", i); return 0; } Wenn ich versuche, es mit gcc als C-Quelle zu kompilieren, wird folgende Fehlermeldung angezeigt: error: lvalue required as left operand of assignment Aber wenn ich es …
92 c++  c 

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.