Domande taggate «c»

C è un linguaggio di programmazione generico utilizzato per la programmazione di sistemi (OS e embedded), librerie, giochi e multipiattaforma. Questo tag deve essere utilizzato con domande generali relative al linguaggio C, come definito nella norma ISO 9899 (l'ultima versione, 9899: 2018, se non diversamente specificato - anche tag richieste specifiche della versione con c89, c99, c11, ecc.). C è distinto da C ++ e non dovrebbe essere combinato con il tag C ++ in assenza di una ragione razionale.

4
Perché tutti digitano i caratteri sui tipi C standard?
Se si desidera utilizzare Qt , devi abbracciare quint8, quint16e così via. Se si desidera utilizzare GLib , è necessario il benvenuto guint8, guint16e così via. Su Linux ci sono u32, s16e così via. uC / OS definisce SINT32, UINT16e così via. E se devi usare una combinazione di queste …
103 c++  c  stdint 

12
Perché i caratteri letterali C sono interi anziché caratteri?
In C ++, sizeof('a') == sizeof(char) == 1. Questo ha senso intuitivo, poiché 'a'è un carattere letterale e sizeof(char) == 1come definito dallo standard. In C tuttavia, sizeof('a') == sizeof(int). Cioè, sembra che i caratteri letterali C siano in realtà numeri interi. Qualcuno sa perché? Posso trovare molte menzioni di …
103 c++  c  char  sizeof 

7
Virgola nella macro C / C ++
Supponiamo di avere una macro come questa #define FOO(type,name) type name Quale potremmo usare come FOO(int, int_var); Ma non sempre così semplicemente: FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 Ovviamente potremmo fare: typedef std::map<int, int> map_int_int_t; FOO(map_int_int_t, map_var); // OK che non è …
103 c++  c  macros  c-preprocessor 


8
Indicatore di larghezza Printf per mantenere la precisione del valore a virgola mobile
Esiste uno printfspecificatore di larghezza che può essere applicato a uno specificatore in virgola mobile che formatta automaticamente l'output con il numero necessario di cifre significative in modo tale che durante la scansione della stringa venga acquisito il valore in virgola mobile originale? Ad esempio, supponiamo di stampare a floatcon …


7
Stampa di caratteri esadecimali in C
Sto cercando di leggere una riga di caratteri, quindi stampare l'equivalente esadecimale dei caratteri. Ad esempio, se ho una stringa che è "0xc0 0xc0 abc123", dove i primi 2 caratteri sono c0in esadecimale e i caratteri rimanenti sono abc123in ASCII, allora dovrei ottenere c0 c0 61 62 63 31 32 …
103 c  hex  printf 

4
Cosa significa -D_XOPEN_SOURCE?
Recentemente ho riscontrato del codice che gcc non compilerebbe senza questo arg. Ho controllato la pagina man di gcc, ma non ho trovato questa opzione specifica. Ho trovato XOPEN_SOURCE, ma c'era poca spiegazione di quello che fa. Qualcuno può elaborare per favore? So che -D_XOPEN_SOURCEpuò essere impostato su valori diversi, …
103 c  gcc 

2
Cosa significa && in void * p = && abc;
Mi sono imbattuto in un pezzo di codice void *p = &&abc;. Qual è il significato di &&qui? Conosco i riferimenti rvalue ma penso che &&usati in questo contesto siano diversi. Cosa &&indica in void *p = &&abc;?
102 c++  c  gcc  operators 

10
"F" dopo il numero
Cosa findicano i numeri dopo? È da C o Objective-C? C'è qualche differenza nel non aggiungere questo a un numero costante? CGRect frame = CGRectMake(0.0f, 0.0f, 320.0f, 50.0f); Puoi spiegare perché non scriverei semplicemente: CGRect frame = CGRectMake(0, 0, 320, 50);

7
Fai funzionare lentamente un programma
C'è un modo per eseguire un programma C ++ più lentamente modificando i parametri del sistema operativo in Linux? In questo modo vorrei simulare cosa succederebbe se quel particolare programma dovesse funzionare su una macchina molto più lenta. In altre parole, una macchina più veloce dovrebbe comportarsi come una macchina …
102 c++  c  linux  unix  ubuntu 


6
snprintf e Visual Studio 2010
Sono abbastanza sfortunato da essere bloccato a utilizzare VS 2010 per un progetto e ho notato che il codice seguente non viene ancora compilato utilizzando il compilatore non conforme agli standard: #include <stdio.h> #include <stdlib.h> int main (void) { char buffer[512]; snprintf(buffer, sizeof(buffer), "SomeString"); return 0; } (fallisce la compilazione …

11
Perché printf con un singolo argomento (senza specificatori di conversione) è deprecato?
In un libro che sto leggendo, è scritto che printfcon un singolo argomento (senza specificatori di conversione) è deprecato. Si consiglia di sostituire printf("Hello World!"); con puts("Hello World!"); o printf("%s", "Hello World!"); Qualcuno può dirmi perché printf("Hello World!");è sbagliato? È scritto nel libro che contiene vulnerabilità. Quali sono queste vulnerabilità?

7
Confusione sull'inizializzazione dell'array in C
In linguaggio C, se inizializza un array come questo: int a[5] = {1,2}; quindi tutti gli elementi dell'array che non sono inizializzati esplicitamente verranno inizializzati implicitamente con zeri. Ma, se inizializzo un array come questo: int a[5]={a[2]=1}; printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]); produzione: 1 0 1 …

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.