Articles of types

Comprendre les opérations de double précision en C

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 […]

Règles de repliement ssortingctes pour les objects alloués

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 […]

Opérateur sizeof () en C

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?

Conventions de nommage de type C, _t ou ALLCAPS

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 […]

type de données personnalisé en C

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 […]

ARM cortex-M3 uint_fast32_t vs uint32_t

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 […]

Qu’est-ce que bogus_type en C

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 […]

Types de base lors de la compilation pour l’architecture arm64 et 32 ​​bits

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é […]

Fonction pointeur sur __atsortingbute __ ((const)) function?

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.

La valeur maximale de size_t (SIZE_MAX) est-elle définie par rapport aux autres types d’entiers?

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 […]