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
Confusion sur l'initialisation du tableau en C
En langage C, si initialisez un tableau comme celui-ci: int a[5] = {1,2}; alors tous les éléments du tableau qui ne sont pas initialisés explicitement seront initialisés implicitement avec des zéros. Mais, si j'initialise un tableau comme celui-ci: int a[5]={a[2]=1}; printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]); production: …


2
GCC -g vs -g3 GDB Flag: Quelle est la différence?
Lors de la compilation du code source C avec gcc ou Clang, j'utilise toujours l' -gindicateur pour générer des informations de débogage pour gdb. gcc -g -o helloworld helloworld.c J'ai remarqué que certaines personnes recommandent à la -g3place. Quelle est la différence entre les indicateurs -get -g3? Y a-t-il également …
102 c  debugging  gcc  gdb  clang 

7
Comment une somme de contrôle CRC32 est-elle calculée?
Peut-être que je ne le vois tout simplement pas, mais CRC32 semble soit inutilement compliqué, soit insuffisamment expliqué partout où je pourrais trouver sur le Web. Je comprends que c'est le reste d'une division arithmétique non basée sur le report de la valeur du message, divisé par le polynôme (générateur), …
102 c  checksum  crc32 




4
spécificateurs de format printf pour uint32_t et size_t
J'ai ce qui suit size_t i = 0; uint32_t k = 0; printf("i [ %lu ] k [ %u ]\n", i, k); J'obtiens l'avertissement suivant lors de la compilation: format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘uint32_t’ Quand j'ai exécuté ceci en utilisant une attelle, j'ai …
101 c  printf 

1
Que signifie [N… M] dans les initialiseurs d'agrégats C?
À partir de la ligne 123 de sys.c : void *sys_call_table[__NR_syscalls] = { [0 ... __NR_syscalls-1] = sys_ni_syscall, #include <asm/unistd.h> }; sys_call_tableest un pointeur générique vers des tableaux, je peux le voir. Cependant quelle est la notation: [0 ... __NR_syscalls-1] Quel est le ...? EDIT: J'ai appris une autre astuce …
101 c  linux  kernel 



13
Essayez les instructions catch en C
Je pensais aujourd'hui aux blocs try / catch existant dans d'autres langues. Googlé pendant un certain temps, mais sans résultat. D'après ce que je sais, il n'y a pas une chose telle que try / catch en C. Cependant, y a-t-il un moyen de les «simuler»? Bien sûr, il y …
101 c 

7
Création de chaînes au format C (sans les imprimer)
J'ai une fonction qui accepte une chaîne, c'est-à-dire: void log_out(char *); En l'appelant, je dois créer une chaîne formatée à la volée comme: int i = 1; log_out("some text %d", i); Comment faire cela dans ANSI C? Seulement, puisque sprintf()renvoie un int, cela signifie que je dois écrire au moins …
101 c  string 


11
Macro vs fonction en C
J'ai toujours vu des exemples et des cas où l'utilisation d'une macro est meilleure que l'utilisation d'une fonction. Quelqu'un pourrait-il m'expliquer avec un exemple l'inconvénient d'une macro par rapport à une fonction?

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.