Ich mag würde unsigned short verstehen, warum Überlauf des Ausgangs Show für, aber nicht für unsigned long? Hier ist ein Beispiel?C Ausgang nicht Überdruck
#include <stdio.h>
#include <stdlib.h>
unsigned short us(float s);
unsigned long ul(float l);
float a = -10;
int main()
{
printf("us method return: %d ", us(a));
printf("\nul method return: %d ", ul(a));
return 0;
}
unsigned short us(float s)
{
return (s + 1);
}
unsigned long ul(float l)
{
return (l + 1);
}
Und der Ausgang ist:
us method return: 65527
ul method return: -9
Funktioniert, wenn Sie korrekte Druckspezifizierer verwenden: https://ideone.com/STzIMN – 2501
Verwenden Sie '% u' für unsigned int und'% lu' für unsinged lang. Hier einige Formatierung: http://www.tutorialspoint.com/c_standard_library/c_function_printf.htm – duncan
Verwenden ' "% hu"' wie bei 'printf ("uns Methode Rückkehr:% hu \ n", uns (a)); ' – chux