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.


6
Qual è il vantaggio di __builtin_expect di GCC nelle dichiarazioni if ​​else?
Mi sono imbattuto in un #definein cui usano __builtin_expect. La documentazione dice: Funzione integrata: long __builtin_expect (long exp, long c) È possibile utilizzare __builtin_expectper fornire al compilatore informazioni sulla previsione del ramo. In generale, dovresti preferire utilizzare il feedback del profilo effettivo per questo ( -fprofile-arcs), poiché i programmatori sono …
144 c  linux  gcc  built-in 


9
Qual'è la differenza tra sigaction e signal?
Stavo per aggiungere un gestore di segnale aggiuntivo a un'app che abbiamo qui e ho notato che l'autore aveva usato sigaction()per configurare gli altri gestori di segnale. Stavo per usare signal(). Per seguire la convenzione dovrei usare, sigaction()ma se stavo scrivendo da zero, quale dovrei scegliere?
143 c  signals  posix 

2
Significato del flag -pthread durante la compilazione
In vari progetti C e C ++ multi thread ho visto il -pthreadflag applicato sia allo stadio di compilazione che a quello di collegamento, mentre altri non lo usano affatto e passano -lpthreadallo stadio di collegamento. Esiste un pericolo non compilare e collegare con la -pthreadbandiera - cioè che cosa …
143 c++  c  linux  pthreads 

4
Qual è la relazione tra BLAS, LAPACK e ATLAS
Non capisco come BLAS, LAPACK e ATLAS siano correlati e come dovrei usarli insieme! Ho esaminato tutti i loro manuali e ho un'idea generale di BLAS e LAPACK e di come usarli con i pochissimi esempi che trovo, ma non riesco a trovare alcun esempio reale usando ATLAS per vedere …
143 c  lapack  blas  atlas 

16
Chiarimento da puntatore a puntatore
Stavo seguendo questo tutorial su come funziona un puntatore a un puntatore . Vorrei citare il passaggio pertinente: int i = 5, j = 6, k = 7; int *ip1 = &i, *ip2 = &j; Ora possiamo impostare int **ipp = &ip1; e ippindica a ip1quali punti i. *ippè ip1, …
142 c  pointers 

6
_DEBUG vs NDEBUG
Quale definizione del preprocessore dovrebbe essere utilizzata per specificare sezioni di codice di debug? Utilizzare #ifdef _DEBUGo #ifndef NDEBUGc'è un modo migliore per farlo, ad esempio #define MY_DEBUG? Penso che _DEBUGsia specifico di Visual Studio, è lo standard NDEBUG?
142 c++  c  debugging 


30
Caratteristiche nascoste di C
Bloccato . Questa domanda e le sue risposte sono bloccate perché la domanda è fuori tema ma ha un significato storico. Al momento non accetta nuove risposte o interazioni. So che esiste uno standard dietro tutte le implementazioni del compilatore C, quindi non dovrebbero esserci funzionalità nascoste. Nonostante ciò, sono …
141 c  hidden-features 

21
Converti typedef oggettivo-c nel suo equivalente di stringa
Supponendo che ho un typedef dichiarato nel mio file .h in quanto tale: typedef enum { JSON, XML, Atom, RSS } FormatType; Vorrei costruire una funzione che converte il valore numerico del typedef in una stringa. Ad esempio, se il messaggio è [self toString:JSON]stato inviato; restituirebbe "JSON". La funzione sarebbe …
141 c  objective-c  enums  typedef 

16
Qual è lo scopo di un blocco 'if (0)' nel blocco if-else?
La mia domanda riguarda la linea che ho citato nell'argomento e che posso vedere in molti punti all'interno del codice di produzione. Il codice complessivo è simile al seguente: if (0) { // Empty braces } else if (some_fn_call()) { // actual code } else if (some_other_fn_call()) { // another …
141 c  if-statement 




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.