alt
Advertisement
Sponsored links
Online Training
Career Series
Exforsys
Exforsys arrow Tutorials arrow C Language arrow C Programming Language - Data Types
Site Search


C Programming Language - Data Types

C Programming Language - Data Types

In this tutorial you will learn about C language data types, Primary data type, Integer Type, Floating Point Types, Void Type, Character Type, Size and Range of Data Types on 16 bit machine, derived data type, Declaration of Variables, User defined type declaration, Declaration of Storage Class, auto, static, extern, register, Defining Symbolic Constants, Declaring Variable as Constant and Volatile Variable

A C language programmer has to tell the system before-hand, the type of numbers or characters he is using in his program. These are data types. There are many data types in C language. A C programmer has to use appropriate data type as per his requirement.

C language data types can be broadly classified as
Primary data type
Derived data type
User-defined data type

Primary data type

All C Compilers accept the following fundamental data types

1.

Integer

int

2.

Character

char

3.

Floating Point

float

4.

Double precision floating point

double

5.

Void

void

The size and range of each data type is given in the table below

DATA TYPE

RANGE OF VALUES

char

-128 to 127

Int

-32768 to +32767

float

3.4 e-38 to 3.4 e+38

double

1.7 e-308 to 1.7 e+308

Integer Type :

Integers are whole numbers with a machine dependent range of values. A good programming language as to support the programmer by giving a control on a range of numbers and storage space. C has 3 classes of integer storage namely short int, int and long int. All of these data types have signed and unsigned forms. A short int requires half the space than normal integer values. Unsigned numbers are always positive and consume all the bits for the magnitude of the number. The long and unsigned integers are used to declare a longer range of values.

Floating Point Types :

Floating point number represents a real number with 6 digits precision. Floating point numbers are denoted by the keyword float. When the accuracy of the floating point number is insufficient, we can use the double to define the number. The double is same as float but with longer precision. To extend the precision further we can use long double which consumes 80 bits of memory space.

Void Type :

Using void data type, we can specify the type of a function. It is a good practice to avoid functions that does not return any values to the calling function.

Character Type :

A single character can be defined as a defined as a character type of data. Characters are usually stored in 8 bits of internal storage. The qualifier signed or unsigned can be explicitly applied to char. While unsigned characters have values between 0 and 255, signed characters have values from –128 to 127.

Size and Range of Data Types on 16 bit machine.

type

SIZE (Bits)

Range

Char or Signed Char

8

-128 to 127

Unsigned Char

8

0 to 255

Int or Signed int

16

-32768 to 32767

Unsigned int

16

0 to 65535

Short int or Signed short int

8

-128 to 127

Unsigned short int

8

0 to 255

Long int or signed long int

32

-2147483648 to 2147483647

Unsigned long int

32

0 to 4294967295

Float

32

3.4 e-38 to 3.4 e+38

Double

64

1.7e-308 to 1.7e+308

Long Double

80

3.4 e-4932 to 3.4 e+4932

Declaration of Variables

Every variable used in the program should be declared to the compiler. The declaration does two things.

1. Tells the compiler the variables name.
2. Specifies what type of data the variable will hold.

The general format of any declaration

datatype v1, v2, v3, ……….. vn;

Where v1, v2, v3 are variable names. Variables are separated by commas. A declaration statement must end with a semicolon.

Example:

Int sum;
Int number, salary;
Double average, mean;

Datatype

Keyword Equivalent

Character

char

Unsigned Character

unsigned char

Signed Character

signed char

Signed Integer

signed int (or) int

Signed Short Integer

signed short int (or) short int (or) short

Signed Long Integer

signed long int (or) long int (or) long

UnSigned Integer

unsigned int (or) unsigned

UnSigned Short Integer

unsigned short int (or) unsigned short

UnSigned Long Integer

unsigned long int (or) unsigned long

Floating Point

float

Double Precision Floating Point

double

Extended Double Precision Floating Point

long double

User defined type declaration

In C language a user can define an identifier that represents an existing data type. The user defined datatype identifier can later be used to declare variables. The general syntax is

typedef type identifier;

here type represents existing data type and ‘identifier’ refers to the ‘row’ name given to the data type.

Example:

typedef int salary;
typedef float average;

Here salary symbolizes int and average symbolizes float. They can be later used to declare variables as follows:

Units dept1, dept2;
Average section1, section2;

Therefore dept1 and dept2 are indirectly declared as integer datatype and section1 and section2 are indirectly float data type.

The second type of user defined datatype is enumerated data type which is defined as follows.

Enum identifier {value1, value2 …. Value n};

The identifier is a user defined enumerated datatype which can be used to declare variables that have one of the values enclosed within the braces. After the definition we can declare variables to be of this ‘new’ type as below.

enum identifier V1, V2, V3, ……… Vn

The enumerated variables V1, V2, ….. Vn can have only one of the values value1, value2 ….. value n

Example:

enum day {Monday, Tuesday, …. Sunday};
enum day week_st, week end;
week_st = Monday;
week_end = Friday;
if(wk_st == Tuesday)
week_en = Saturday;

Declaration of Storage Class

Variables in C have not only the data type but also storage class that provides information about their location and visibility. The storage class divides the portion of the program within which the variables are recognized.

auto : It is a local variable known only to the function in which it is declared. Auto is the default storage class.

static : Local variable which exists and retains its value even after the control is transferred to the calling function.

extern : Global variable known to all functions in the file

register : Social variables which are stored in the register.

Defining Symbolic Constants

A symbolic constant value can be defined as a preprocessor statement and used in the program as any other constant value. The general form of a symbolic constant is

# define symbolic_name value of constant

Valid examples of constant definitions are :

# define marks 100
# define total 50
# define pi 3.14159


These values may appear anywhere in the program, but must come before it is referenced in the program.

It is a standard practice to place them at the beginning of the program.

Declaring Variable as Constant

The values of some variable may be required to remain constant through-out the program. We can do this by using the qualifier const at the time of initialization.

Example:

Const int class_size = 40;

The const data type qualifier tells the compiler that the value of the int variable class_size may not be modified in the program.

Volatile Variable

A volatile variable is the one whose values may be changed at any time by some external sources.

Example:

volatile int num;

The value of data may be altered by some external factor, even if it does not appear on the left hand side of the assignment statement. When we declare a variable as volatile the compiler will examine the value of the variable each time it is encountered to see if an external factor has changed the value.


Trackback(0)
Comments (17)add comment

Darryl Stone said:

  I have a question. Is there an escape character for centering? The closest I can find is \t for tabbing.



Thank you very much!



Darryl Stone

This e-mail address is being protected from spam bots, you need JavaScript enabled to view it
June 15, 2006

Noel V Zambezi said:

  the nearest centering character you can use is the undescore (_).I also have a question What is another name for an include file
September 11, 2006

richiesoft said:

  Is while and do also a data type
October 30, 2006

vintox said:

  can you teach me how to work with format specifiers
November 27, 2006

InvisibleSniper said:

  No,do and while are not also a data type.

do is a keyword in C/C that is used to initiate the start of a particular loop called "Do While Loop". And while is used in conjuction with the do keyword, while is the part of the "Do While" loop that evaluates the loop to see if it should stop looping.
February 12, 2007

joshi13 said:

  can anyone tell me how char -128 would be stored in memory in bits.
as 127 is represented by (01111111) how -128 is represented for character data type
August 26, 2007

Shiv said:

  Well having a negative number implies you are working with signed arithmetic. This means that the most significant bit (MSB) is a 1 for any negative integer (so for 8 bit numbers all negative numbers are 1XXXXXXX where X can be either 1 or 0).

Computers also work on "two's complement". To invert the sign of a number, invert the bits then add 1.

So to get -127, first take 127 = 01111111, invert the bits to get 10000000 then add 1 = 10000001. So -128 must be -127 minus 1 = 10000000.

From two's complement and knowing the MSB is 1 for negative numbers, you can make any number. This same principal applies to any size signed number (e.g. 32-bit integers, 64-bit and so on).
August 29, 2007

x!n said:

  cAn anyone telL me what are the typs of values in C??? what variAblE is? rules in naming a variable?
reserved word? data type? declarations? arithmetic expession? leveL of associativity????pls.........
September 04, 2007

Karthickeyan.s said:

  What is difference between structure and union?
September 05, 2007

manamadurai karthick said:

  what is meant by template?
September 08, 2007

Rajaa said:

  Why we are use the c language around in the world?
September 08, 2007

Mohan g said:

  Is the 'C' language difficult from any other high level languages
October 01, 2007

shabna said:

  Is there is any need of negative numbers in the range of a character variable(range -128 to 127).All ASCII values are ( )ve numbers.Please tell me whether it is possible to assign a (-) ve number to a character variable.If possible show me how
November 15, 2007

rekha gambhir said:

  Classification of C data types?
primary or secondary
or
simple or derived
i m confused between them?
araays ,union ,pointers comes under which category
plz help me out,plz
December 12, 2007

p anusha said:

  where we used c language mostly we found efficient lanuages than c .what is the use of them
December 25, 2007

Jagadeesh Kumar said:

  We know the integer data type storing (eg. for char 127 to -128 in binary 0111 1111 to 1000 0000 ) but how float data type is store in memory please explain in binary format.
February 19, 2008

Sudhanshu said:

  can u help finding me range of float and long datatypes in C by programming without using headerfiles meant for this purpose..
June 02, 2008

Write comment

busy
 
< Prev
Exforsys Offers
© 2008 Exforsys.com
Joomla! is Free Software released under the GNU/GPL License.
Page copy protected against web site content infringement by Copyscape