Articles of conversion implicite

Pourquoi la conversion implicite de non-const en const ne se produit-elle pas ici?

Dupliquer possible: pourquoi n’est-il pas légal de convertir (pointeur en pointeur en non-const) en un pointeur Avertissements de correction de double pointeur en C Je passe un gchar** à un g_key_file_set_ssortingng_list qui attend un const gchar * const identifier [] /* this function is part of the GLib library */ void g_key_file_set_ssortingng_list(GKeyFile *key_file, const gchar […]

Avertissement étrange de conversion int courte GCC

J’ai un peu de code C, qui va exactement comme ceci: short int fun16(void){ short int a = 2; short int b = 2; return a+b; } Lorsque j’essaie de le comstackr avec GCC, je reçois l’avertissement: warning: conversion to ‘short int’ from ‘int’ may alter its value [-Wconversion] return a+b; ^ Bien qu’il n’y […]

Pourquoi >> 24 cause -version mais >> 23 pas?

Voici le code: #include unsigned char f(uint32_t RGBA) { return (RGBA>>24) & 0xFF; } Lorsqu’il est compilé avec -Wconversion il provoque “warning: la conversion en ‘unsigned char’ de ‘uint32_t {aka unsigned int}’ peut modifier sa valeur [-Wconversion]”. Si j’abaisse la valeur de décalage à 23 ou moins, l’avertissement disparaît. J’ai examiné la norme C99 et […]

Impression de type int avec% lu – C + XINU

J’ai un code donné, à mon avis, il y a un problème avec ce code: je comstack sous XINU. Les variables suivantes sont pertinentes: unsigned long ularray[]; int num; char str[100]; Il y a une fonction retourne int: int func(int i) { return ularray[i]; } maintenant le code est comme ça: num = func(i); sprintf(str, […]

Utilisation de typecasting pour supprimer les avertissements du compilateur gcc

Je fais de la programmation ARM intégrée avec gcc 4.9. J’utilise le commutateur -Wconversion car il fait partie de la configuration par défaut de l’outil de développement de mon entreprise. J’utilise les types stdint.h (uint8_t, uint32_t, etc.). Le compilateur crée des avertissements chaque fois que j’effectue une affectation composée ou même une simple addition. Par […]

Conversion implicite en C?

Que se passe t-il ici: printf(“result = %d\n”, 1); printf(“result = %f\n”, 1); les sorties: result = 1 result = 0.000000 Si je vérifie le type de ces variables avant d’essayer de les imprimer, cela fonctionne bien sûr. Pourquoi la deuxième instruction print n’est-elle pas convertie implicitement en 1.00000?

Conversion de type entier implicite en C

Je comprends les conversions implicites du langage C entre les types à nombre entier et à virgule flottante, mais j’ai une question à poser pour les conversions de types implicites signés / non signés. Si vous ajoutez, par exemple, un caractère unsigned char et un unsigned char signed int , quel sera le type résultant? […]

Pourquoi cela se produit-il avec l’opérateur sizeof lorsque l’on compare avec un nombre négatif?

Qu’est-ce qui se passe vraiment ici? La sortie est maintenant “False”: #include int main() { if (sizeof(int) > any_negative_integer) printf(“True”); else printf(“False”); return 0; } Si je le change en: if (sizeof(int) < any_negative_integer) la sortie est “True”. Mise à jour: la même question a déjà été posée, je ne pouvais pas la trouver avant […]