Est-ce que C traite les constantes hexadécimales (par exemple 0x23FE) et les entêtes avec ou sans signature?
J’expérimentais avec GCC et ai découvert que vous pouvez déclarer des variables externes const dans les fichiers d’en-tête, mais les garder mutables dans les fichiers d’implémentation. EDIT : Cela ne fonctionne pas réellement. La seule raison pour laquelle j’ai compilé mon code de test, c’est parce que je n’ai pas inclus “header.h” dans “header.c”. header.h: […]
Si je veux utiliser quelque chose comme ci-dessous dans un code C: if(num < 0x100000000LL) Je veux que la comparaison se produise sur une longue constante, mais le suffixe LL ne fonctionne pas dans MSVC6.0, mais dans MS Visual Studio 2005. Comment puis-je le faire fonctionner dans MSVC 6.0? -Ajit
Dupliquer possible: «Const statique» vs «#define» en C J’ai commencé à apprendre le C et je ne comprenais pas bien les différences entre les macros et les variables constantes. Qu’est-ce qui change quand j’écris, #define A 8 et const int A = 8 ?
À partir d’un exemple unsigned long x = 12345678UL Nous avons toujours appris que le compilateur n’a besoin que de voir “long” dans l’exemple ci-dessus pour définir 4 octets (en 32 bits) de mémoire. La question qui se pose est de savoir pourquoi devrions-nous utiliser L / UL dans les constantes longues même après avoir […]
Je voulais changer la valeur d’une constante en utilisant des pointeurs. Considérons le code suivant int main() { const int const_val = 10; int *ptr_to_const = &const_val; printf(“Value of constant is %d”,const_val); *ptr_to_const = 20; printf(“Value of constant is %d”,const_val); return 0; } Comme prévu, la valeur de constante est modifiée. mais quand j’ai essayé […]
Je me demandais s’il y avait un moyen de protéger une variable pour la modifier une fois initialisée (quelque chose comme “constantize” une variable à l’exécution) Par exemple: #include #include int main(void) { int v, op; scanf( “%d”, &op ); if( op == 0 ) v = 1; else v = 2; // here transform […]
Je vais avoir une structure comme ceci: typedef struct tree_s{ struct tree_s *a; int b; }tree_t; Ce que, pour le moment, j’initialise de cette manière: tree_t branch_n = { .a = NULL, .b = 2 }; tree_t root = { .a = (tree_t*) &branch_n, .b = 1 }; Maintenant, cela me gêne de devoir initialiser […]
Je viens tout juste de commencer à lire la norme ISO C 2011, la dernière version publique [1] , et je me suis rendue compte que, dans le C Lexical Grammer [1] [458ff.], Toutes les constantes numériques (littérales) ne sont pas signées. Cela signifie-t-il que le compilateur interprète une constante numérique signée (telle que -5.1E10 […]
J’essaie l’exemple suivant: printf(“%9.1a”,4488.09); //Only one digits has to be printed after digital point La représentation binary de 4488.09 == 1 0001 1000 1000.000101011100001010001111010111000010100011110101 devrait devenir 0x1.1p + 12 ou 0x1.2p + 12? Je ne peux pas comprendre si l’opération round (en cours d’impression) doit être effectuée pour la représentation binary ou pour la représentation […]