C programming session7
-
Upload
keroles-karam -
Category
Education
-
view
303 -
download
0
Transcript of C programming session7
![Page 1: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/1.jpg)
C_ProgrammingPart 7
ENG. KEROLES SHENOUDA
1
![Page 2: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/2.jpg)
Macros Vs Functions
No Macro Function
1 Macro is Preprocessed Function is Compiled
2 No Type Checking Type Checking is Done
3 Code Length Increases Code Length remains Same
–
5 Speed of Execution is
Faster
Speed of Execution is Slower
6 Before Compilation macro name
is replaced by macro value
During function call , Transfer
of Control takes place
7 Useful where small code
appears many time
Useful where large code
appears many time
8 Generally Macros do not extend
beyond one line
Function can be of any number
of lines
2
![Page 3: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/3.jpg)
ANSI C
ANSI C, ISO C and Standard C refer to the successive standards for the C programming language published by the American National Standards Institute (ANSI) and the International Organization for Standardization (ISO). Historically, the names referred specifically to the original and best-supported version of the standard (known as C89 or C90). Software developers writing in C are encouraged to conform to the standards, as doing so aids portability between compilers.
C89
C90
C95
C99
3
![Page 4: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/4.jpg)
Preprocessor Test for C95 compatibility 4
![Page 5: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/5.jpg)
Constant in C
constant can be used to represent as fixed values in a C program
Constants refers to the fixed values that do not change during the execution of a program
5
1.const float pie =3.147;
2.const int radius =4;
3.const char c = 'A';
4.const char name[] = “C Course";
![Page 6: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/6.jpg)
Constant using const keyword C programming:
When declaring a const variable, it is possible to put const either before or after the type: that is, both
int const a = 15;
Or
const int x = 15;
6
![Page 7: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/7.jpg)
Declare constant const keyword are used for declare a constant.
7
gives error
you can't modify const
![Page 8: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/8.jpg)
8
![Page 9: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/9.jpg)
Structure in C
Structure is a user defined data type which hold or store heterogeneous data item or element in a singe variable. It is a Combination of primitive and derived data type.
Why Use Structure in C
In C language array is also a user defined data type but array hold or store only similar type of data, If we want to store different-different type of data in then we need to defined separate variable for each type of data.
Example: Suppose we want to store Student record, then we need to store....
Student Name
Roll number
Class
Address
9
![Page 10: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/10.jpg)
Why Use Structure in C Example [without Structure] 10
It is clear that code size is
huge with respect to the
problem complexity.
Also the storage of
the single employee
information in different
arrays complicatesmany operations like
entering, sorting and
printing
![Page 11: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/11.jpg)
Structures are used to collect related variables in one place. In this example all employeeinformation can gathered in one place. This will simplify any further operation over thecollected data, because all information items are treated as a single entity, called a Structure.Following format is used to define an employee structure, which is used to collect allemployee information in one place.
11
![Page 12: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/12.jpg)
Structure 12
Structure is a complex data type consisting of a set of members/attributes. Each attribute
can have any data type. It can be int, float, short…its. It can be single value or array. It can
be const or variable. Also, structures may hold another structure (nested structure).Programmers are free to define as many structures as the program required. Each structure
must be labeled with a unique label called Structure Name.
Structure Name can be used as a new data type, it can be used to define variables, it can be used to define
arrays and it can be passed to a functions.
![Page 13: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/13.jpg)
Defining and Using Structure Variables 13
In above example a variable X is defined from the data type
(SEmployee). (X) variable
contains the following members (m_Name,
m_BirthDateYear,
m_BirthDateMonth, m_BirthDateDay, m_Salary).
In this example a values is
assigned to each member of (X) variable, then all members‟
values is printed.
![Page 14: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/14.jpg)
Copying Structure Variable Contents to another Variable
14
![Page 15: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/15.jpg)
Employee Sort with StructuresSort with Ages
15
![Page 16: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/16.jpg)
Employee Sort with StructuresSort with Ages
16
The code
(SEmployee
employees[
100]) means
that defining
an array of 100
variable
of type
(struct
SEmployee)
![Page 17: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/17.jpg)
Employee Sort with StructuresSort with Ages
17
![Page 18: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/18.jpg)
Employee Sort with StructuresSort with Ages
18
![Page 19: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/19.jpg)
With Structure Vs without Structure 19
![Page 20: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/20.jpg)
Initializing Structure Variables 20
![Page 21: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/21.jpg)
Nested Structure DefinitionAs mentioned before, it is applicable to define structure members with any data type, evenother structures type.
Structure
21
Nested Structure
![Page 22: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/22.jpg)
Nested Structure 22
![Page 23: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/23.jpg)
Employee Sort with Nested Structures 23
![Page 24: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/24.jpg)
Employee Sort with Nested Structures
24
![Page 25: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/25.jpg)
Employee Sort with Nested Structures 25
![Page 26: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/26.jpg)
Employee Sort with Nested Structures 26
![Page 27: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/27.jpg)
Using Structures with FunctionsRead and Print Employee and Date Values using Functions
27
![Page 28: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/28.jpg)
Using Structures with FunctionsRead and Print Employee and Date Values using Functions
28
![Page 29: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/29.jpg)
Using Structures with FunctionsRead and Print Employee and Date Values using Functions
29
![Page 30: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/30.jpg)
Write A program Adding Two Complex Numbers using Structure And Function
30
![Page 31: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/31.jpg)
31
![Page 32: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/32.jpg)
32
![Page 33: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/33.jpg)
33
![Page 34: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/34.jpg)
enum
An enumeration is a user-defined data type that consists of integral constants. To define an enumeration, keyword enum is used.
34
Here, name of the enumeration is flag.
And, const1, const2,...., constN are values of type flag.
By default, const1 is 0, const2 is 1 and so on. You can change default values of enum elements
during declaration (if necessary).
![Page 35: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/35.jpg)
Enumerated Type Declaration
When you create an enumerated type, only blueprint for the variable is created. Here's how you can create variables of enum type.
Here, a variable check of type enum boolean is created.
Here is another way to declare same check variable using different syntax.
35
![Page 36: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/36.jpg)
Example: Enumeration Type 36
output
![Page 37: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/37.jpg)
Why enums are used in C programming?
1. Enum variable takes only one value out of many possible values. Example to demonstrate it,
37
It's because the size of an integer is 4 bytes.
This makes enum a good choice to work with flags.
You can accomplish the same task using structures.
However, working with enums gives you efficiency along
with flexibility.
![Page 38: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/38.jpg)
Why enums are used in C programming?
More readable Here, we have added italics to our design. Note, only code for italics is written inside if statement.
38
You can accomplish almost anything in C programming without using enumerations. However, they can be pretty handy in certain situations. That's what differentiates good programmers from great programmers.
![Page 39: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/39.jpg)
Example: Personal Data using Enum 39
![Page 40: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/40.jpg)
Unions 40
![Page 41: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/41.jpg)
Using Union41
Following example illustrates how to combine the three data types (int, float, double) in oneoverlapped data type. Programmer is responsible on supplying and retrieving the datacorrectly. If integer data is supplied, integer data must be retrieved.
![Page 42: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/42.jpg)
42
![Page 43: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/43.jpg)
43
![Page 44: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/44.jpg)
44
![Page 45: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/45.jpg)
Difference between union and structure 45
![Page 46: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/46.jpg)
Difference between union and structureThe primary difference can be demonstrated by this example:
46
![Page 47: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/47.jpg)
Difference between union and structureThe primary difference can be demonstrated by this example:
1. More memory is allocated to structures than union
The amount of memory required to store a structure variable is the sum of memory size of all members.
But, the memory required to store a union variable is the memory required for the largest element of an union.
2. Only one union member can be accessed at a time
47
![Page 48: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/48.jpg)
Scope/Lifetime
Variable “scope” refers to part of the programthat may access the variable▫ Local, global, etc…• Variable “lifetime” refers to time in which avariable occupies memory• Both determined by how and where variable isdefined
48
![Page 49: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/49.jpg)
Storage classes
In C language, each variable has a storage class which decides scope, visibility and lifetime of that variable. The following storage classes are most oftenlyused in C programming,
Automatic variables
External variables
Static variables
Register variables
49
![Page 50: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/50.jpg)
Automatic variables
A variable declared inside a function without any storage class specification, is by default an automatic variable. They are created when a function is called and are destroyed automatically when the function exits. Automatic variables can also be called local variables because they are local to a function. By default they are assigned garbage value by the compiler.
50
![Page 51: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/51.jpg)
External or Global variable
A variable that is declared outside any function is a Global variable. Global variables remain available throughout the entire program. One important thing to remember about global variable is that their values can be changed by any function in the program.
51
Here the global variable number is available to all three
functions.
![Page 52: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/52.jpg)
extern keyword
The extern keyword is used before a variable to inform the compiler that this
variable is declared somewhere else. The extern declaration does not allocate storage for variables.
52
![Page 53: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/53.jpg)
Problem when extern is not used 53
![Page 54: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/54.jpg)
Example Using extern in same file 54
![Page 55: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/55.jpg)
Static variables
A static variable tells the compiler to persist the variable until the end of program. Instead of creating and destroying a variable every time when it comes into and goes out of scope, static is initialized only once and remains into existence till the end of program. A static variable can either be internal or external depending upon the place of declaraction. Scope of internal static variable remains inside the function in which it is defined. External static variables remain restricted to scope of file in each they are declared.
They are assigned 0 (zero) as default value by the compiler.
55
![Page 56: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/56.jpg)
Static variables 56
![Page 57: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/57.jpg)
Register variable
Register variable inform the compiler to store the variable in register instead of memory. Register variable has faster access than normal variable. Frequently used variables are kept in register. Only few variables can be placed inside register.
NOTE : We can never get the address of such variables.
Syntax :
57
![Page 58: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/58.jpg)
Volatile Type Qualifier 58
![Page 59: C programming session7](https://reader031.fdocuments.us/reader031/viewer/2022022409/5a647bf77f8b9a57568b48b9/html5/thumbnails/59.jpg)
References 59
The Case for Learning C as Your First Programming Language
A Tutorial on Data Representation
std::printf, std::fprintf, std::sprintf, std::snprintf…..
C Programming for Engineers, Dr. Mohamed Sobh
C programming expert.
fresh2refresh.com/c-programming
C programming Interview questions and answers
C – Preprocessor directives