Appendix B. Ranges and Parameter Passing Conversions
Ranges
Table B-1 and Table B-2 list the ranges of various variable types.
Name | Bits | Low value | High value | Accuracy |
int | 32 | -2147483648 | 2147483647 | |
short int | 16 | -32768 | 32767 | |
long int | 32 | -2147483648 | 2147483647 | |
unsigned int | 32 | 0 | 4294967295 | |
unsigned short int | 16 | 0 | 65535 | |
unsigned long int | 32 | 0 | 4294967295 | |
char | 8 | System Dependent | ||
unsigned char | 8 | 0 | 255 | |
float | 32 | -3.4E+38 | 3.4E+38 | 6 digits |
double | 64 | -1.7E+308 | 1.7E+308 | 15 digits |
long double | 64 | -1.7E+308 | 1.7E+308 | 15 digits |
Name | Bits | Low value | High value | Accuracy |
int | 16 | -32768 | 32767 | |
short int | 16 | -32768 | 32767 | |
long int | 32 | -2147483648 | 2147483647 | |
unsigned int | 16 | 0 | 65535 | |
unsigned short int | 16 | 0 | 65535 | |
unsigned long int | 32 | 0 | 4294967295 | |
char | 8 | -128 | 127 | |
unsigned char | 8 | 0 | 255 | |
float | 32 | -3.4E+38 | 3.4E+38 | 6 digits |
double | 64 | -1.7E+308 | 1.7E+308 | 15 digits |
long double | 80 | -3.4E+4932 | 3.4E+4932 | 17 digits |
Automatic Type Conversions to Use When Passing Parameters
In order to eliminate some of the problems that may occur when passing parameters to a function, C performs the following automatic conversions to function arguments as shown in Table B-3.
Type | Converted to |
char | int |
short int | int |
int | int |
long int | long int |
float | double |
double | double |
long double | long double |
array | pointer |
Get Practical C Programming, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.