Pregunta

Soy un principiante en C, y el uso de Turbo compilador de C ++ (16 bits).

En el software que estoy escribiendo, la respuesta máxima es de alrededor de 32000. Si quiero un número mayor que eso, yo uso long int.

Si ejecuto el programa siguiente:

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

A continuación, me sale un error que el valor constante es larga en main() función.

¿Cómo puedo obtener una respuesta más que 32000 y deshacerse de este error? También NW i% de cambio d a% ld y uso 40000L bt cuando uso entero sin signo entonces también necesito utilizar 'l' con 40000 // ??

¿Fue útil?

Solución

Use% ld en printf para el largo int. % D es para int que sólo tiene 16 bits en su compilador. Y para el mensaje de error, utilice x = 40000L.

Otros consejos

Cambiar tiempo para firmar, 40000 caben en unsigned int.

Asumiendo que estás en Windows, la mejor solución a este es apuntar a una plataforma de 32 o 64 bits. programas de 16 bits ni siquiera se pueden ejecutar en las versiones de 64 bits de Windows; que realmente debería actualizar.

Microsoft tiene una versión gratuita de Visual Studio: Visual C ++ Express Edition . Esta es una excelente opción también porque viene con un IDE completo.

gcc también está disponible para las ventanas en forma de Mingw. Por desgracia, Mingw en sí no libera compiladores listas para su uso, pero otros lo hacen, como o href="http://www.tdragon.net/recentgcc/" rel="nofollow noreferrer"> TDM .

Tal vez cepillado en variadic formato podría ayudar :) En el momento en que usted (o el printf () del subsistema) se pone realmente a ampliar argumentos variadic , su supone que usted sabe qué tipo son.

Esto no sólo se aplica a printf, pero cualquier otra función que emplea VA _ * () o v * printf () cuando se habla de printf. No pierda de vista sus tipos.

Además, mantener un registro de de signo para evitar resultados inesperados.

En otras palabras, en el momento de llamar a printf (), o cualquier otra cosa que se acepta un elipsis , estar seguro de lo que está pasando. Esta no se limita a printf (), de hecho aventurarse más allá de que a menudo no producen advertencias del compilador.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top