L’outil d’parsing statique que j’utilise génère un avertissement pour ce code: uint16 var1 = 1U; uint16 var2 = ~var1; Je vérifie les règles MISRA C 2004 et trouve la règle 10.5: Si les opérateurs binarys ~ et << sont appliqués à un opérande od du type sous-jacent unsigned char ou unsigned court , le résultat […]
On dit que le transtypage de style C essaie simplement d’appliquer différentes combinaisons de transtypages C ++ et que la première combinaison autorisée est utilisée. Cependant, j’ai le sentiment d’avoir entendu dire qu’il existe des situations que seul le transtypage de style C peut gérer, alors qu’aucune combinaison de transtypages C ++ n’est autorisée. Ai-je […]
int i=40; char *p; p=(char *)&i;//What actually happens here? printf(“%d”,*p); Quelle sera la sortie? S’il vous plaît aider!
Quelqu’un pourrait-il décrire comment (struct sockaddr *)&server fonctionne ici? Est-il possible de transformer une structure plus grande en une structure plus petite? Voir ces structs: // IPv4 AF_INET sockets: struct sockaddr_in { short sin_family; // eg AF_INET, AF_INET6 unsigned short sin_port; // eg htons(3490) struct in_addr sin_addr; // see struct in_addr, below char sin_zero[8]; // […]
Je commence tout juste à me familiariser avec Cython, en essayant d’envelopper des structures d’une bibliothèque C dans des méthodes et des classes Python. Ce que je ne comprends pas vraiment, c’est comment devrait fonctionner le transtypage de structures C (initialisées) vers la classe Python correspondante. Qu’est-ce que j’oublie ici: Un extrait du fichier d’en-tête […]
int *int_pointer = malloc(10); *int_pointer = 53200; printf(“The integer at byte #0 is set to: %d \n”, (char) *int_pointer); RÉSULTAT: -48 J’essayais donc de voir ce qui allait se passer et j’ai eu ce résultat vraiment inattendu. Pourquoi -48? Comment s’est-il même transformé en négatif?
Je commence tout juste à comprendre les indicateurs de fonction en C. Pour comprendre le fonctionnement du casting des indicateurs de fonction, j’ai écrit le programme suivant. Il crée en principe un pointeur de fonction sur une fonction qui prend un paramètre, le convertit en un pointeur de fonction avec trois parameters et appelle la […]
En C, vous pouvez transtyper des types de données simples tels que int , float et des pointeurs sur ceux-ci. Maintenant, j’aurais supposé que si vous voulez convertir un pointeur en un type en valeur d’un autre type (par exemple de *float en int ), l’ordre de diffusion et de déréférencement n’a pas d’importance. C’est-à-dire […]
Je veux passer un entier signé 32 bits x travers un socket. Pour que le destinataire sache quel ordre d’octet il faut attendre, htonl(x) avant l’envoi. htonl attend cependant un uint32_t et je veux être sûr de ce qui se passe lorsque je lance mon int32_t en uint32_t . int32_t x = something; uint32_t u […]
Étant nouveau pour le C, la seule utilisation pratique que je tire des pointeurs vides concerne les fonctions polyvalentes pouvant stocker différents types de données dans un pointeur donné. Par conséquent, je n’ai pas transtypé mon pointeur lors de l’allocation de mémoire. J’ai vu des exemples de code qui utilisent parfois des pointeurs vides, mais […]