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.




7
Rientro automatico degli spazi con C in vim?
Sono stato un po 'viziato usando Eclipse e java. Ho iniziato a usare vim per eseguire la codifica C in un ambiente Linux, c'è un modo per fare in modo che vim esegua automaticamente la spaziatura corretta per i blocchi? Quindi, dopo aver digitato un {la riga successiva avrà 2 …
85 c  vim  coding-style  vi 





10
Esiste un modo elegante e veloce per verificare che 1 bit in un numero intero si trovi in ​​una regione contigua?
Devo verificare se le posizioni (da 0 a 31 per un numero intero a 32 bit) con valore di bit 1 formano una regione contigua. Per esempio: 00111111000000000000000000000000 is contiguous 00111111000000000000000011000000 is not contiguous Voglio che questo test, cioè qualche funzione has_contiguous_one_bits(int), sia portatile. Un modo ovvio è quello di …

8
Perché GDB salta in modo imprevedibile tra le righe e stampa le variabili come "<valore ottimizzato>"?
Qualcuno può spiegare questo comportamento di gdb? 900 memset(&amp;new_ckpt_info,'\0',sizeof(CKPT_INFO)); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_** HDR),i_offset); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_ HDR),i_offset);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) …



7
Come chiamare la funzione C ++ da C?
Lo so. Chiamare la funzione C da C ++: Se la mia applicazione fosse in C ++ e avessi dovuto chiamare funzioni da una libreria scritta in C. Allora avrei usato //main.cpp extern "C" void C_library_function(int x, int y);//prototype C_library_function(2,4);// directly using it. Questo non altererebbe il nome C_library_functione il …
84 c++  c  visual-c++  extern-c 

2
Come funziona esattamente il trucco della doppia stringa?
Almeno alcuni preprocessori C consentono di stringere il valore di una macro, piuttosto che il suo nome, facendolo passare attraverso una macro simile a una funzione a un'altra che lo stringa: #define STR1(x) #x #define STR2(x) STR1(x) #define THE_ANSWER 42 #define THE_ANSWER_STR STR2(THE_ANSWER) /* "42" */ Esempi di casi d'uso …


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.