Advance-C/C2/Union-and-Typedef/English

From Script | Spoken-Tutorial
Revision as of 11:59, 17 October 2014 by Ashwini (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Title of script: Typedef and Union in C

Author: Ashwini Patil

Keywords: Video tutorial, typedef, union, difference between structure & union


Visual Cue
Narration
Display Slide 1 Welcome to the Spoken Tutorial on Typedef and Union in C.
Display Slide 2 In this tutorial, we will learn about
  • typedef keyword
  • union with the help of examples.


Display Slide 3

System Requirements

For this tutorial I am using
  • Ubuntu Operating System version 11.10
  • gcc Compiler version 4.6.1 on Ubuntu


Display Slide 4

Prerequisites


spoken-tutorial.org

To follow this tutorial you should be familiar with C tutorials.


If not, for relevant tutorials please visit spoken hyphen tutorial dot org.

I will start with an introduction to typedef keyword.
Display Slide 5

Introduction


* Typedef keyword is used to give symbolic name to an existing type or user defined datatypes.
  • It is a way to define alias to the commands.
  • It helps to provide clarity to the code.
  • It makes the code easier to understand and change.


Display Slide 6

Syntax:

typedef existing_name alias_name

ex:

typedef unsigned int uint;

Syntax:

typedef existing_name alias_name

ex:

typedef unsigned int uint;


typedef is the keyword.

unsigned int is the datatype.

uint is the alias name given for unsigned int.

Let us go through an example code.



Point to the filename. Note that our filename is pallindrome.c

In this program, we will check whether the given number is a pallindrome or not.

typedef unsigned int uint;


We have given alias name as uint to the unsigned int datatype using typedef.
uint n, n1;

uint rev = 0;

uint rem;

Here we are using uint to declare the variables.
Point to the logic. This is the logic for pallindrome.
Now let us execute the program.
Press Ctrl+Alt+T Let us open the terminal by pressing Ctrl+Alt+T keys.
Compile

gcc pallindrome.c -o pallindrome

Type: gcc pallindrome.c -o pallindrome



Execute

Type: ./pallindrome

Type: ./pallindrome
121 We see:

Enter any three digit number

I will enter 121In the code use also give a comment about number entry.

In the code ask the user to enter a three digit number.Reply to Madhuri (24/09/2014, 16:22): "..."

Ok



The output is:

Given number is a palindrome number

Display Slide 7 Now we will learn about union datatype.

Union is a collection of different datatypes grouped together.

Union allocates one common storage space for all its members

We can access only one member of union at a time.

Display Slide 8-9 Syntax1:

union union_name

{

members;

members;

} union_variable;

We also have an alternate syntax.

Syntax 2:


union union_name

{

members;

members;

};


union union_name union_variable;

Let us see an example.

I have a code file let us go through it.

Note that our filename is union.c



union student We have declared union named student.
int eng;

int maths;

int science;

Here we have three variables eng, maths and science.
union student stud; In main function, we have declared a union variable as stud.
stud.eng = 75;

stud.maths = 70;

stud.science = 65;

Here we can access the union members using union variable.
total = stud.eng + stud.maths + stud.science; Then we calculate the total marks and display it.
gcc union.c -o union

./union

Let us execute

On the terminal type,

gcc union.c -o union

./union

Output The output is displayed as:

Total is 228

Let us see the difference between structure and union
Slide display 10-11-12 Union allocates a common storage space for all its members.

Structure allocates separate storage space for all its members.


Union occupies lower memory space.

Structure occupies higher memory space.


Ex for union:

union student{int marks;char name[6];double average;};

Memory allocation for union variable will be 8 bytes.

As double data type will occupy the maximum memory space.


Ex for structure:

struct student{int mark;char name[6];double average;};


Memory allocation for structure variable will be:

2bytes+6bytes+8bytes =16bytes.

This brings us to the end of this tutorial.

Let us summarize.

Display Slide 13

Summary

In this tutorial we learnt,
  • typedef
  • union
  • Difference between union and structure.

Where is the assignment.



Display Slide 14 As an assignment,

Write a program to display records of an employee.

Like name, address, salary.

Define a union named employee.

Give an alias name as emp using typedef.

Display Slide 15


Watch the video available at the link shown below

It summarises the Spoken Tutorial project

If you do not have good bandwidth, you can download and watch it

Display Slide 16

Spoken Tutorial Workshops

The Spoken Tutorial Project Team

Conducts workshops using spoken tutorials

Gives certificates to those who pass an online test

For more details, please write to

contact@spoken-tutorial.org

Display Slide 15

Acknowledgement

Spoken Tutorial Project is a part of the Talk to a Teacher project

It is supported by the National Mission on Education through ICT, MHRD, Government of India

More information on this Mission is available at: http://spoken-tutorial.org\NMEICT-Intro

This is Ashwini Patil from IIT Bombay.

Thank you for joining.

Contributors and Content Editors

Ashwini, Nancyvarkey