J’aimerais comprendre pourquoi ce code: double r,d,rc; scanf(“%lf %lf”, &r, &d); rc = (r * r) – (d/2) * (d/2); printf(“%.2f\n”, M_PI * rc); renvoie un résultat plus précis que celui-ci (sans affectation de variable rc ): double r,d,rc; scanf(“%lf %lf”, &r, &d); printf(“%.2f\n”, M_PI * (r * r) – (d/2) * (d/2)); Autre question […]
C99 6.5 / 6 Le type effectif d’un object pour un access à sa valeur stockée est le type déclaré de l’object, le cas échéant. 75) Si une valeur est stockée dans un object n’ayant pas de type déclaré via une lvalue dont le type n’est pas un type de caractère, le type de la […]
Considérez le programme main() { printf(“%d %d %d”,sizeof(‘3′),sizeof(“3”),sizeof(3)); } la sortie d’un compilateur gcc est: 4 2 4 Pourquoi est-ce?
Je me suis toujours demandé s’il y avait des problèmes de nommage, comme quand utiliser ALLCAPS pour un type et quand append _t (et quand ne pas utiliser quoi que ce soit?). Je sais qu’à l’époque K & R avait publié de nombreux documents sur l’utilisation de C, mais je n’ai rien trouvé à ce […]
Je travaille avec la cryptographie et dois utiliser des nombres très grands. J’utilise également la nouvelle instruction Intel relative à la multiplication sans retenue, qui requirejs le type de données m128i. Elle est chargée en la chargeant d’une fonction prenant les données en virgule flottante comme arguments. Je dois stocker 2 ^ 1223 entier, puis […]
Je développe un programme pour un processeur de la série cortex-M3 STM32Fx. Dans stdint.h, les éléments suivants sont définis: typedef unsigned int uint_fast32_t; typedef uint32_t uint_least32_t; typedef unsigned long uint32_t; Si je comprends bien. [u]int_fast[n]_t will give you the fastest data type of at least n bits. [u]int_least[n]_t will give you the smallest data type […]
Je suis passé en revue certains types définis dans libgcc. Ils sont tous apparemment mappés au même type nommé bogus_type . Je ne peux pas trouver sa définition. #define SItype bogus_type #define USItype bogus_type #define DItype bogus_type #define UDItype bogus_type #define SFtype bogus_type #define DFtype bogus_type A quoi correspond ce type? Est-ce même un type […]
En compilant le code de mon application iOS pour arm64, j’ai rencontré un problème intéressant, lié à différents types de base pour les types Foundation personnalisés. Dites que je veux imprimer (ou ssortingngWithFormat) un nombre déclaré comme NSUInteger [NSSsortingng ssortingngWithFormat:@”%u”, _depth, Cela produira un avertissement lors de la compilation pour arm64, car NSUInteger a été […]
Comment (dans GCC / “GNU C”) déclarez-vous un pointeur de fonction qui pointe vers une fonction __atsortingbute__((const)) ? L’idée est que je veux que le compilateur évite de générer plusieurs appels à la fonction appelée via le pointeur de la fonction lorsqu’il peut mettre en cache la valeur de retour d’un appel précédent.
J’écris une bibliothèque de fonctions qui permettent de convertir en toute sécurité entre différents types numériques ou d’essayer. Mon intention est à peu près égale de créer parties-créer-utile-bibliothèque et apprendre-C-bord-cas. Ma fonction int -to- size_t déclenche un -Wtype-limits GCC -Wtype-limits qui déclare que je ne devrais pas tester si un int est supérieur à SIZE_MAX […]