Tag: c99
Dieser tag ist für Fragen in Bezug auf den Internationalen Standard ISO 9899:1999, aka „C99“, mit technischen Korrekturen, und bei Fragen zu code ist geschrieben in C99 (im Gegensatz zu K&R-C, C89 oder später C-Standard Revisionen wie die 2011 Version C11).
3
Antworten
Auf einem 32-bit-system, was bedeutet ftell zurück, wenn die aktuelle position Anzeige der Datei im Binärmodus geöffnet ist Vergangenheit die 2GB Punkt? In der C99 standard, ist diese Undefiniertes Verhalten seit ftell muss wieder ein long int
4
Antworten
Ich heute gelernt, dass es Digraphen in C99 und C++. Das folgende ist ein gültiges Programm: %:include <stdio.h> %:ifndef BUFSIZE %:define BUFSIZE 512 %:endif void copy(char d<::>, const char s<::>, int len) <% while (len-- >= 0)
2
Antworten
Ich würde gern einen string (char*) untersucht und in einem tm-struct in C. gibt es eine built-in-Funktion zu tun? Beziehe ich mich auf ANSI-C in der C99-Standard. InformationsquelleAutor thoaionline | 2010-04-27
2
Antworten
Ich versuche zu generieren, die Funktionsdeklaration mit einem makro /* goal: generate int f(int a, float b) */ template<typename P> struct ptype; template<typename P> struct ptype<void(P)> { typedef P type; }; #define NAMEe #define COMMAe #define COMMA
5
Antworten
Ist es eine gute Idee, mit C99-VLA? Wann ist es angebracht, VLA im Vergleich zu malloc/free? (da VLA kann blow up stack?) Vermeiden Sie ungeklärte TLAs wie VLAs... Der Begriff "VLA" ist eine gut etablierte, namhafte Bedeutung
3
Antworten
Ist INT_MAX Unterschied zwischen 32-bit und 64-bit-Umgebung? Es scheint, wie es der Fall wäre, aber ich habe gehört, wie Leute sagen, dass die 64-bit-Umgebung nur verwendet die 32-bit-Umgebung ist INT_MAX. Es gibt keine solche Sache wie ein
6
Antworten
Wirklich Standard-konform sind, müssen alle Funktionen in C (außer main) haben einen Prototyp, auch wenn Sie nur nach Ihrer definition in der gleichen übersetzungseinheit? Die Frage Muss declare function Prototyp in C? war einst vorgeschlagen, als ein
4
Antworten
In der folgenden Bestimmungen für den Fall, wenn array-Zerfälle zu Zeiger: Einen lvalue [siehe Frage 2.5] vom Typ array von T, die in einem Ausdruck zerfällt (mit drei Ausnahmen) zu einem Zeiger auf sein erstes element; die
1
Antworten
Ich realisierte, dass ich nicht einmal im C99-Modus nach Erhalt der compile-Fehler 'for' loop initial Erklärungen dürfen nur im C99-Modus Fand ich einige Ratschläge, wie man C99 über eine schnelle Suche, die hat mir gesagt, zu gehen,
1
Antworten
Ich habe einige debugging-code, der wie folgt aussieht: #define STRINGIFY(x) #x #define TOSTRING(x) STRINGIFY(x) #define AT __FILE__ ":" TOSTRING(__LINE__) void __my_error(const char*loc, const char *fmt, ...); #define my_error(fmt, ...) __my_error(AT, fmt, ##__VA_ARGS__) Den letzten makro verwendet wird,
2
Antworten
Entstand diese aus einer Frage, die bereits heute auf das Thema der bignum-Bibliotheken und gcc-spezifische hacks, um die C-Sprache. Speziell diese beiden Erklärungen wurden verwendet: typedef unsigned int dword_t __attribute__((mode(DI))); Auf 32-bit Systemen und typedef unsigned int
3
Antworten
Was ist das Verhalten von aufrufen einer Funktion null-pointer? void (*pFunc)(void) = NULL; pFunc(); Warum ist es ratsam zu initialisieren, noch ungenutzte Funktion Zeiger auf NULL? Genau wie ein normales Zeiger, ich glaube, Sie würde sich ein
2
Antworten
Ich Frage mich nur, ob folgende ist der richtige Weg zu int konvertieren, um es anzuzeigen als einen char #include <stdio.h> int main() { int x = 500; printf("%hhd\n", x); } Auch, von oben Frage ich mich,
2
Antworten
Ich wollen in der Regel vermeiden Sie code wie diesen: #include <stdio.h> int main(int argc, char *argv){ int n = 3; for (int n = 1; n <= 10; n++){ printf("%d\n", n); } printf("%d\n", n); } Wie
5
Antworten
Auf die Diskussion des dynamischen Arbeitsspeichers, hier: "Einführung in C Pointer und Dynamischer Speicher" Der Autor fest: Einen Speicherblock wie diese können effektiv verwendet werden, als eine mehr flexible array. Dieser Ansatz ist tatsächlich viel häufiger in
6
Antworten
In meinem Programm habe ich eine Funktion, welche eine einfache addition c[0:15] = a[0:15] + b[0:15]. Der Funktionsprototyp lautet: void vecadd(float * restrict a, float * restrict b, float * restrict c); Auf unsere 32-bit-embedded-Architektur gibt es
3
Antworten
Ich bin mit Visual Studio 2012 zu entwickeln, die einfache Win32-C-Programme. Ich weiß, dass der VS-compiler unterstützt nur C89, aber ich würde gerne wissen, ob es gibt einen Weg, um diese Einschränkung zu umgehen. Insbesondere würde ich
3
Antworten
Ist es ein Unterschied, wenn ich kompilieren Sie das folgende Programm mit c89 vs c99? Ich erhalte die gleiche Ausgabe. Es ist wirklich ein Unterschied zwischen den beiden? #include <stdio.h> int main () { //Print string to
4
Antworten
Ich habe ein array, hat eine Geschichte von Werten, und beim hinzufügen eines neuen Wertes, muss ich mit shift alle bisherigen Werte eine position nach Links, zu verlieren, der älteste Wert und machen Platz für die nächsten.
2
Antworten
Wenn ich versuche zu kompilieren unter Linux mit gcc -std=c99, der compiler beschwert sich darüber, nicht zu wissen struct timespec. Aber wenn ich kompilieren Sie diese ohne -std=c99 funktioniert alles einwandfrei. #include <time.h> int main(void) { struct
3
Antworten
Hi, vor kurzem sah ich eine Menge von Codes, die auf online(auch SO;) wie: char *p = malloc( sizeof(char) * ( len + 1 ) ); Warum sizeof(char) ? Es ist nicht nötig, nicht wahr? Oder Ist
5
Antworten
Vorausgesetzt, Sie verwenden einen compiler, der C99 unterstützt (oder auch nur stdint.h), gibt es einen Grund, nicht zu verwenden, die Feste Breite integer-Typen wie uint8_t? Einen Grund, dass ich bewusst bin, ist, dass es macht viel mehr
1
Antworten
wenn ich clock_gettime in meinem code-snippet, und kompilieren mit dem flag -std=c99, bekam ich eine Fehlermeldung wie diese: warning: implicit declaration of function 'clock_gettime' error: 'CLOCK_REALTIME' undeclared (first use in this function) und ich habe die Datei
4
Antworten
Ich vorstellen, wir sind uns alle einig, dass es als idiomatischer C, um den Zugriff auf eine multidimensionale Arrays dereferenzieren eines (evtl offset) Zeiger auf erstes element in a one-dimensional Mode, z.B.: void clearBottomRightElement(int *array, int M,
2
Antworten
Ich bin mit Linux (3.13.0-24-generic #46-Ubuntu), und schrieb ein einfaches C-Programm über pid. Beim kompilieren, bekam ich ein Problem: gcc pid_test.c ist dies in Ordnung. gcc -std=c99 pid_test.c oder gcc -std=c11 pid_test.c gibt Fehler: Fehler: unknown type
2
Antworten
Es gibt Unmengen von ähnlichen Fragen, aber noch konnte ich nicht finden, jede Antwort, die relevant für die Funktion von variabler Länge arrays in C99/C11. Wie pass mehrdimensionale variable Länge array, um eine Funktion in C99/C11? Beispiel:
5
Antworten
War ich unter dem Eindruck, dass der Zugriff auf eine union Mitglied anderer als der Letzte gesetzt wird UB, aber ich kann nicht scheinen zu finden, eine solide Referenz (eine andere als Antworten zu fordern, es ist
1
Antworten
enum Elemente " Namen sind anfällig für überschneidungen/kollidieren mit den beiden anderen enum-Elemente-Namen, Variablen-Namen, etc... enum Fruit { apple, orange }; typedef enum Fruit Fruit; enum Color { red, orange //<-- ERROR }; typedef enum Color Color;
5
Antworten
Ich weiß, wie man ein Struktur-array innerhalb einer Funktion: typedef struct item { int test; }; void func (void) { int arraysize = 5; item ar[arraysize]; } Aber wie kann ich die gleichen, wenn das array ist
4
Antworten
Ich weiß, wie Sie malloc() und free() Speicher zuweisen, aber gibt es auch eine standard-C-Funktion, um zu überprüfen, wie viel Speicher übrig ist, so kann ich rufen, die in regelmäßigen Abständen, um sicherzustellen, dass mein code hat
2
Antworten
GCC verwenden und C99-Modus habe ich eine Funktion deklariert als: void func(float *X); Wenn ich die Funktion aufrufen, ich benutze einen flüchtigen array Y: volatile float Y[2]; int main() { func(Y); return 0; } Beim kompilieren (mit
2
Antworten
Betrachten Sie den folgenden C-code: #include <stdio.h> #include <stdlib.h> void fatal(const char* message){ /* Prints a message and terminates the program. Closes all open i/o streams before exiting. */ printf("%s\n", message); fcloseall(); exit(EXIT_FAILURE); } Ich bin mit
3
Antworten
Ich versuche, split einen string in tokens auf, sondern eher rekursiv. Ich bin versucht, zu analysieren: "content=0&website=Google" so, ich habe einen Weg, um die Parameter und Werte. Wenn ich versuche strtok ich am Ende zerstören Sie die
4
Antworten
Ich bin versucht, port einen small-data-Analyse-Programm aus einer 64-bit-UNIX zu einem 32-bit-Windows-XP-system (nicht Fragen :)). Aber nun habe ich Probleme mit der 2 GB Grenze für die Dateigröße (lange nicht 64 bit auf dieser Plattform). Habe ich
3
Antworten
Ich habe gerade ein experiment gestern, und finde etwas verwirrend: #include <stdio.h> int main() { int j; scanf("%d",&j); const int i = j; int arr[i]; return 0; } Die Anzahl j ist zu Lesen von der Tastatur
2
Antworten
Erkenne ich diese Frage sein könnte-Prozessor abhängig, aber hoffentlich kann jemand mich in die richtige Richtung. Für das Leben von mir, ich kann nicht herausfinden, wie die Umwandlung einer unsigned long long int repräsentiert Nanosekunden, um eine
5
Antworten
Studiere ich die Makros und fand viele Quellen und Fragen zum Unterschied zwischen Makros und inline-Funktionen. Aber es gibt nichts, was konkret spezifiziert und differenziert vor - &Nachteile der inline-vs normalen Funktionen. Aber was ist, wenn ich
5
Antworten
Ich geschrieben habe eine Anwendung in C, die erwartet zwei Zeilen am Eingang. Erste Eingabe wird erzählt, wie groß ein array von int wird und die zweite Eingabe enthält Werte, getrennt durch Leerzeichen. Zum Beispiel, die folgenden
7
Antworten
Nach einer langen Pause,bin ich zurück zu C, aber immer verwirrt, noch auf einige einfache Fragen. So ist man hier. Ist hier der einfache code : #include<stdio.h> int main() { char str1="hello"; char str2="hello"; if(str1==str2) printf("equal"); else
4
Antworten
Ich weiß, dass UINT32_MAX existiert, aber ich habe nicht in der Lage, es zu benutzen. Ich habe versucht printf("%d\n", UINT32_MAX); und es ausgedruckt -1. Mit %ld statt %d stellte mich mit dem Fehler, dass UINT32_MAX ist vom
2
Antworten
Vom Der GNU-C-Programmierung Tutorial: Den fgets ("file get string") - Funktion ist ähnlich wie die bekommt Funktion. Diese Funktion ist veraltet -- das bedeutet, dass es veraltet ist und es ist dringend empfohlen, Sie verwenden Sie es
4
Antworten
was ist die beste Methode zum vergleichen von int-arrays b und c mit a: int a = {0,1,0,0,1}; int b = {0,1,0,0,1}; int c = {1,1,0,0,1}; b und c sind nur Beispiele, übernehmen Sie können eine beliebige
3
Antworten
Was ist der richtige Weg, um zu konvertieren/umwandeln eines int zu einem size_t im C99-auf 32-bit und 64-bit-linux-Plattformen? Beispiel: int hash(void * key) { //... } int main (int argc, char * argv) { size_t size =
5
Antworten
Fand ich, dass in C99 sollten Sie #include <stdint.h> und das scheint zu funktionieren mit meinem C++03 gcc-compiler auch, aber ist das der richtige header für moderne C++, ist es portabel? -1: für die, nicht Mühe zu
1
Antworten
Gibt es eine version des C99/posix memcpy Funktion im GCC: __builtin_memcpy. Manchmal kann es ersetzt werden durch GCC-inline-version von memcpy und in anderen Fällen ist es ersetzt durch Aufruf der libc ist memcpy. E. g. es wurde
10
Antworten
Sind Deklarationen/Prototypen notwendig, C99 ? Ich bin derzeit auf der Definition meiner Funktionen in eine header-Datei und #include-ING es in der Haupt-Datei. Ist das OK in C99 ? Warum haben die meisten Programmierer deklarieren/der Prototyp der Funktion
2
Antworten
Lerne ich c, derzeit. Das Buch Ich lese, ist C99 basiert. Ich will update my knowledge, C11 nach Beendigung dieses Buch, oder die Ressource ändern, wenn es einen großen Unterschied. Also, was ich Fragen, ist für eine
3
Antworten
Möchte ich aktiviere c99-Modus in den gcc-compiler zu lese ich in anderen post in diesem forum, dass -std sollte gleich -std=c99 aber ich weiß nicht, wie Sie auf diesen Wert mithilfe des Befehls " Linie, so bitte
3
Antworten
Was gcc Optionen sollte ich verwenden, um zu erzwingen, ANSI-C (C99) Warnungen/Fehler? gcc (GCC) 3.4.2 (mingw-special) Bin ich mit: gcc -pedantic-ansi -std=c99 ist das richtig? ANSI veröffentlicht die ursprüngliche C-standard von 1989. ISO veröffentlicht seine version der
3
Antworten
Ich würde gerne wissen, ob Microsoft Visual Studio 2010 unterstützt C99. Wenn nicht, wie kann ich die standard-Typen wie intptr_t und uintptr_t? InformationsquelleAutor der Frage thetna | 2011-07-14