Question

Je suis un débutant à C, et en utilisant le compilateur Turbo C (16 bits).

Dans le logiciel que je vous écris, la réponse maximale est d'environ 32000. Si je veux un plus grand nombre que cela, j'utilise long int.

Si j'exécute le programme suivant:

#include <stdio.h>
void main()
{
    long int x;
    x=40000;
    printf("%d", x);
}

Alors je reçois une erreur que la valeur constante est longue en fonction main().

Comment puis-je obtenir une réponse plus que 32000 et de se débarrasser de cette erreur? également nw i changer% d% ld et en utilisant 40000L bt quand j'utiliser entier non signé alors également besoin d'utiliser i 'l' avec 40000 // ??

Était-ce utile?

La solution

Utilisez% ld dans printf pour le long int. % D est pour int qui a seulement 16 bits dans votre compilateur. Et pour le message d'erreur, utilisez x = 40000L.

Autres conseils

Le changement à long unsigned, 40000 se tenir dans unsigned int.

En supposant que vous êtes sous Windows, la meilleure solution est de cibler une plate-forme 32 ou 64 bits. programmes 16 bits ne fonctionneront pas même sur les versions de Windows 64 bits; vous devriez vraiment mettre à jour.

Microsoft a une version gratuite de Visual Studio: Visual C ++ Express Edition . Ceci est une excellente option aussi parce qu'il est livré avec un IDE complet.

gcc est également disponible pour les fenêtres sous forme de Mingw. Malheureusement, MinGW lui-même ne libère pas compilateurs prêt à l'emploi, mais d'autres, comme TDM .

Peut-être le brossage sur variadique formatage pourrait aider :) Au moment où vous (ou sous-système printf ()) se fait à l'expansion arguments variadique , son supposé que vous savez quel type ils sont.

Ce non seulement va pour printf, mais toute autre fonction qui utilise va _ * () ou v * printf () lors de la discussion printf. Ne perdez pas une trace de vos types.

En outre, garder une trace de signedness pour éviter des résultats inattendus.

En d'autres termes, le temps que vous appelez printf (), ou quoi que ce soit d'autre d'accepter un elipsis , assurez-vous de ce que vous passez. Ce ne se limite pas à printf (), en fait, au-delà de aventurant qui souvent produisent pas les avertissements du compilateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top