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.

2
Que représente la constante 0,0039215689?
Je continue de voir cette constante apparaître dans divers fichiers d'en-tête graphiques 0.0039215689 Cela semble avoir quelque chose à voir avec la couleur peut-être? Voici le premier hit sur Google : void RDP_G_SETFOGCOLOR(void) { Gfx.FogColor.R = _SHIFTR(w1, 24, 8) * 0.0039215689f; Gfx.FogColor.G = _SHIFTR(w1, 16, 8) * 0.0039215689f; Gfx.FogColor.B = …


11
Quelle est la différence entre NULL, '\ 0' et 0?
En C, il semble y avoir des différences entre les différentes valeurs de zéro - NULL, NULet 0. Je sais que le caractère ASCII correspond '0'à 48ou 0x30. Le NULLpointeur est généralement défini comme: #define NULL 0 Ou #define NULL (void *)0 De plus, il y a le NULpersonnage '\0'qui …
309 c  pointers  null 

8
Pourquoi rand () + rand () produit-il des nombres négatifs?
J'ai observé que la rand()fonction de bibliothèque lorsqu'elle est appelée une seule fois dans une boucle, elle produit presque toujours des nombres positifs. for (i = 0; i < 100; i++) { printf("%d\n", rand()); } Mais lorsque j'ajoute deux rand()appels, les nombres générés ont maintenant plus de nombres négatifs. for …
304 c  random 



5
Extraire des bits avec une seule multiplication
J'ai vu une technique intéressante utilisée dans une réponse à une autre question , et j'aimerais mieux la comprendre. On nous donne un entier 64 bits non signé, et nous sommes intéressés par les bits suivants: 1.......2.......3.......4.......5.......6.......7.......8....... Plus précisément, nous aimerions les déplacer vers les huit premières positions, comme ceci: …

14
MIN et MAX en C
Où sont MINet MAXdéfinis en C, le cas échéant? Quelle est la meilleure façon de les implémenter, de manière aussi générique et sécurisée que possible? (Les extensions / buildins du compilateur pour les compilateurs traditionnels sont préférés.)
301 c  max  min  c-preprocessor 

3
Pourquoi NaN - NaN == 0.0 avec le compilateur Intel C ++?
Il est bien connu que les NaN se propagent en arithmétique, mais je n'ai trouvé aucune démonstration, j'ai donc écrit un petit test: #include <limits> #include <cstdio> int main(int argc, char* argv[]) { float qNaN = std::numeric_limits<float>::quiet_NaN(); float neg = -qNaN; float sub1 = 6.0f - qNaN; float sub2 = …
300 c++  c  floating-point  ieee-754  icc 


4
Taille du caractère ('a') en C / C ++
Quelle est la taille des caractères en C et C ++? Autant que je sache, la taille de char est de 1 octet en C et C ++. En C: #include <stdio.h> int main() { printf("Size of char : %d\n", sizeof(char)); return 0; } En C ++: #include <iostream> int …
299 c++  c  types 

9
Pointeurs en C: quand utiliser l'esperluette et l'astérisque?
Je commence juste avec des pointeurs et je suis un peu confus. Je sais &signifie l'adresse d'une variable et qui *peut être utilisée devant une variable de pointeur pour obtenir la valeur de l'objet pointé par le pointeur. Mais les choses fonctionnent différemment lorsque vous travaillez avec des tableaux, des …
298 c  pointers 

6
Comment imprimer un type int64_t en C
La norme C99 a des types entiers avec une taille d'octets comme int64_t. J'utilise le code suivant: #include <stdio.h> #include <stdint.h> int64_t my_int = 999999999999999999; printf("This is my_int: %I64d\n", my_int); et je reçois cet avertissement du compilateur: warning: format ‘%I64d’ expects type ‘int’, but argument 2 has type ‘int64_t’ J'ai …
298 c  stdint 

26
Mesurer facilement le temps écoulé
J'essaie d'utiliser time () pour mesurer divers points de mon programme. Ce que je ne comprends pas, c'est pourquoi les valeurs de l'avant et de l'après sont les mêmes? Je comprends que ce n'est pas la meilleure façon de présenter mon programme, je veux juste voir combien de temps quelque …
297 c++  c  linux  time  measurement 

3
Quel est l'opérateur >>> = en C?
Donné par un collègue comme un casse-tête, je ne peux pas comprendre comment ce programme C se compile et s'exécute réellement. Qu'est-ce que cet >>>=opérateur et l'étrange 1P1littéral? J'ai testé à Clang et GCC. Il n'y a aucun avertissement et la sortie est "???" #include <stdio.h> int main() { int …

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.