c basics course material_version1.3_updated.pdf
TRANSCRIPT
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
1/147
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
2/147
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
3/147
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
4/147
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
5/147
1. Tell the students why we need to know about programming ( machine language )
2. Show them a simple compilation flow from c file to hex file ( IDE integrated
development environment)
preprocessor (txt.c) – compiler (txt.o , .asm) – linker ( txt.exe , .hex)
1. Show them the Structure of the C file from #include to functions bodies if any
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
6/147
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
7/147
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
8/147
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
9/147
In windows:
int 4 bytes
Short 2 bytes
char 1 byte
float 4 bytes
long 4 bytes
double 8 bytes
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
10/1471
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
11/147
Naming Convention: You have to stick to a clear naming convention in order to make
your code readable, for example:
Char u8NumOfEmployess
Long u16Salary
int _myAge
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
12/1471
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
13/1471
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
14/1471
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
15/1471
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
16/1471
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
17/1471
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
18/1471
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
19/147
For Example
If (x==y) depends on if x really equals to y, but in the other hand if (x=y) it will depend
on the value of y if it is equal to 0 so the evaluation is false else it is true.
int x = 1; int y = 0; if (x=y) False,
int x = 1; int y = 10; if (x=y) True.
1
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
20/147
Short circuit: The evaluation of an expression is discontinued if the value of a
conditional expression can be determined early. Be careful of any side effects in the
code.
Examples:
(3==3) || ((c=getchar())==’y’). The second expression is not evaluated.
(0) && ((x=x+1)>0) . The second expression is not evaluated.
2
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
21/1472
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
22/147
Notes:
- AND is true only if both operands are true.
- OR is true if any operand is true.
- XOR is true if only one of the operand is true.
- Shift Left by x equal multiplication by 2 power to x
- Shift Right by x equal divide by 2 power to x
2
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
23/1472
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
24/1472
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
25/147
As a rule, the compiler promotes each term in an binary expression to the highest
precision operand.
2
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
26/1472
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
27/1472
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
28/1472
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
29/1472
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
30/1473
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
31/1473
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
32/1473
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
33/1473
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
34/1473
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
35/147
Show the student a simple program that takes a number from the Keyboard and then
display it back on the screen (Echo)
3
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
36/147
Show the student a simple program that takes a number from the Keyboard and then
display it back on the screen (Echo)
3
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
37/147
Show the student a simple program that takes a number from the Keyboard and then
display it back on the screen (Echo)
3
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
38/147
A common pattern in C (and in most programming) languages is the following: if (
cond ) x=;
else
x=;
3
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
39/1473
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
40/1474
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
41/1474
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
42/1474
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
43/1474
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
44/1474
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
45/1474
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
46/1474
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
47/1474
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
48/1474
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
49/1474
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
50/1475
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
51/1475
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
52/1475
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
53/1475
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
54/1475
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
55/1475
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
56/1475
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
57/1475
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
58/1475
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
59/1475
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
60/1476
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
61/1476
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
62/1476
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
63/1476
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
64/147
Give the Students a program that has al logical error and tell them to debug and
know the error source :
#include
#include
int main()
{
int value,i;
printf("value before for loop is %d \n",value);
for(i=0;i
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
65/1476
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
66/1476
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
67/1476
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
68/1476
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
69/1476
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
70/1477
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
71/1477
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
72/1477
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
73/1477
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
74/1477
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
75/1477
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
76/1477
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
77/1477
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
78/1477
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
79/1477
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
80/1478
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
81/1478
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
82/1478
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
83/147
Give the student a simple initialization example
8
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
84/1478
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
85/1478
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
86/1478
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
87/147
Give the student a simple initialization example
8
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
88/1478
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
89/1478
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
90/1479
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
91/1479
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
92/1479
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
93/1479
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
94/1479
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
95/147
U can repeat any of the prev examples using functions
9
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
96/1479
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
97/1479
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
98/1479
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
99/1479
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
100/147
What is the scope of each variable in this example?
10
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
101/147
The compiler always reference the variable from the private scope first then the outer
scope
So first it will print 10, and then 25 line is printed.
10
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
102/14710
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
103/147
Use multiple files in the project
10
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
104/14710
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
105/14710
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
106/14710
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
107/14710
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
108/14710
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
109/14710
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
110/14711
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
111/1471
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
112/14711
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
113/14711
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
114/14711
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
115/14711
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
116/14711
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
117/14711
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
118/14711
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
119/14711
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
120/14712
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
121/14712
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
122/14712
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
123/14712
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
124/14712
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
125/14712
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
126/14712
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
127/14712
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
128/14712
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
129/14712
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
130/14713
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
131/14713
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
132/14713
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
133/14713
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
134/147
St_employee : St stands for structure type (to increase readability)
13
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
135/147
S_employee : S stands for structure type (to increase readability)
13
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
136/147
S_employee : S stands for structure type (to increase readability)
13
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
137/14713
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
138/14713
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
139/147
Exercise on all typedefs
13
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
140/14714
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
141/147
The preprocessor operation : is a stage before compilation to handle the preprocess
keywords like #define, #include, #ifdef, and #ifndef.
Simply it does some text replacement, addition, deletion on the code depending of
the used keywords before the compilation.
Other keywords will be explained later with the convenient context.
14
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
142/14714
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
143/14714
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
144/14714
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
145/14714
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
146/14714
-
8/17/2019 C Basics Course Material_Version1.3_updated.pdf
147/147