• admin@embedclogic.com

Data type In C

Although the term “Data Type” describes itself yet I will tell you in one sentence that “A data type defines all about the variable behavior”.

you can tell every detail(nature, limit, size) about a variable if you know about its data type.

So, input1 is an :

Integer type variable

Which holds +ve and -ve values

Between range -32768 to +32767.

And all you can predict about input1 because of its data type signed short int.

How to decide Data Type for a Variable

Let’s say you are writing a program for two number addition.To write this program you must be clear about the user’s input behavior like –

Type of Input Data i.e integer, decimal, positive, negative

Range of input data

let’s assume as a user I will input

Integer value only

Positive and negative both

Input data between -32,000 to +32,000

So as a programmer I will declare following variable at 32- bit platform –

Input1 and Input2 —– > For storing user input in memory

result ———————>  to store the result of the operation


Data type of Result is signed int to accept the correct result of extreme inputs of signed short int inputs.

If input1 =20000 , input2 = 20000

Result =40,000

40,000 is beyond the short int range.So Result has signed short int data type.

Classification of Datatype

Data Types are mainly divided into three categories(Click On link for detail) –

Fundamental /Primary/Primitive data types

Derived/ Secondary/Non-Primitive data types

User-defined data types

See below classification diagram for detail.

Details about the fundamental data types

Fundamental typesMemory Size Range(for 32-bit platform)Format Specifier
char1 byte-128 to +127%c (%d for Numerical output)
signed char1 byte-128 to +127%c (%d for Numerical output)
unsigned char1 byte 0 to 255%c (%u for Numerical output)
short int2 byte-32768 to 32767%d
signed short int2 byte-32768 to 32767%d
unsigned short int2 byte0 to 65535%u
int4 byte-2147483648 to 2147483647%d
signed int4 byte-2147483648 to 2147483647%d
unsigned int4 byte0 to 4294967295%u
long int8 byte-9223372036854775808 to 9223372036854775807%ld
signed long int8 byte-9223372036854775808 to 9223372036854775807%ld
unsigned long int8 byte0 to 18446744073709551615%lu
float4 byte1.175494e-38 to 3.402823e+38%f or %e(for exponential output)
double8 byte2.225074e-308 to 1.797693e+308%lf or %le(for exponential output)
long double16 byte3.362103e-4932 to 1.189731e+4932%Lf or %Le(for exponential output)
void0 byte


Write a program to print the size and acceptable data range by all data types?

Subscribe and stay updated with our latest articles.

You have successfully subscribed to the newsletter

There was an error while trying to send your request. Please try again.

Embedclogic will use the information you provide on this form to be in touch with you and to provide updates and marketing.