Questions marquées «c»

C est un langage de programmation à usage général utilisé pour la programmation système (OS et embarqué), les bibliothèques, les jeux et les plateformes multiples. Cette balise doit être utilisée avec des questions générales concernant le langage C, tel que défini dans la norme ISO 9899 (la dernière version, 9899: 2018, sauf indication contraire - également balise les demandes spécifiques à la version avec c89, c99, c11, etc.). C est distinct de C ++ et il ne doit pas être combiné avec la balise C ++ en l'absence d'une raison rationnelle.

7
Architectures exotiques dont se soucient les comités de normalisation
Je sais que les normes C et C ++ laissent de nombreux aspects de l'implémentation du langage définis simplement parce que s'il existe une architecture avec d'autres caractéristiques, il serait très difficile, voire impossible, d'écrire un compilateur conforme aux normes. Je sais qu'il y a 40 ans, tout ordinateur avait …
154 c++  c  architecture 

5
Fuite toujours accessible détectée par Valgrind
Toutes les fonctions mentionnées dans ce bloc sont des fonctions de bibliothèque. Comment puis-je rectifier cette fuite de mémoire? Il est répertorié dans la catégorie " Toujours joignable ". (Il y en a 4 autres, qui sont très similaires, mais de tailles variables) 630 bytes in 1 blocks are still …
154 c  pthreads  valgrind 


6
NSLog le nom de la méthode avec Objective-C dans iPhone
Actuellement, nous définissons nous-mêmes un mécanisme de journal étendu pour imprimer le nom de la classe et le numéro de ligne source du journal. #define NCLog(s, ...) NSLog(@"<%@:%d> %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], \ __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__]) Par exemple, lorsque j'appelle NCLog (@ "Hello world"); La sortie sera: <ApplicationDelegate:10>Hello world …

11
~ x + ~ y == ~ (x + y) est toujours faux?
Ce code est-il toujours évalué à faux? Les deux variables sont des entiers signés du complément à deux. ~x + ~y == ~(x + y) J'ai l'impression qu'il devrait y avoir un certain nombre qui remplisse les conditions. J'ai essayé de tester les nombres entre -5000et 5000mais je n'ai jamais …

9
En C, les accolades agissent-elles comme un cadre de pile?
Si je crée une variable dans un nouvel ensemble d'accolades, cette variable est-elle sortie de la pile sur l'accolade fermante ou est-elle suspendue jusqu'à la fin de la fonction? Par exemple: void foo() { int c[100]; { int d[200]; } //code that takes a while return; } Prendront de la …
153 c  memory  stack 

9
Qu'est-ce qu'un «callback» en C et comment sont-ils implémentés?
D'après la lecture que j'ai faite, Core Audio s'appuie fortement sur les rappels (et C ++, mais c'est une autre histoire). Je comprends le concept (en quelque sorte) de la configuration d'une fonction qui est appelée à plusieurs reprises par une autre fonction pour accomplir une tâche. Je ne comprends …
153 c  callback 



13
Num ++ peut-il être atomique pour 'int num'?
En général, for int num, num++(ou ++num), en tant qu'opération de lecture-modification-écriture, n'est pas atomique . Mais je vois souvent des compilateurs, par exemple GCC , générer le code suivant ( essayez ici ): Puisque la ligne 5, qui correspond à num++une instruction, peut-on conclure que num++ c'est atomique dans …

8
Renvoyer un tableau en utilisant C
Je suis relativement nouveau en C et j'ai besoin d'aide pour les méthodes traitant des tableaux. Issu de la programmation Java, j'ai l'habitude de pouvoir dire int [] method()pour renvoyer un tableau. Cependant, j'ai découvert qu'avec C, vous devez utiliser des pointeurs pour les tableaux lorsque vous les renvoyez. En …
153 c  arrays  pointers  char 

2
Comment concaténer deux fois avec le préprocesseur C et développer une macro comme dans «arg ## _ ## MACRO»?
J'essaie d'écrire un programme où les noms de certaines fonctions dépendent de la valeur d'une certaine variable macro avec une macro comme celle-ci: #define VARIABLE 3 #define NAME(fun) fun ## _ ## VARIABLE int NAME(some_function)(int a); Malheureusement, la macro NAME()transforme cela en int some_function_VARIABLE(int a); plutôt que int some_function_3(int a); …

4
Que signifie «#define _GNU_SOURCE»?
Aujourd'hui, j'ai dû utiliser la basename()fonction, et man 3 basename( ici ) m'a donné un message étrange: Remarques Il existe deux versions différentes de basename () - la version POSIX décrite ci-dessus et la version GNU , que l'on obtient après #define _GNU_SOURCE #include <string.h> Je me demande ce que …
152 c  posix  gnu 

22
Gestion des erreurs dans le code C
Que considérez-vous comme «meilleure pratique» en ce qui concerne la gestion des erreurs de manière cohérente dans une bibliothèque C. J'ai pensé à deux façons: Renvoyez toujours le code d'erreur. Une fonction typique ressemblerait à ceci: MYAPI_ERROR getObjectSize(MYAPIHandle h, int* returnedSize); Le toujours fournir une approche de pointeur d'erreur: int …
152 c  error-handling 


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.