【程序41信盈達嵌入式企鵝一一起嗚嗚吧久零紀要
】
$ G! q7 D U, \3 V: G6 y3 l題目:學習static
定義靜態變量的用法
3 [2 z) q3 O# F7 k3 B3 { J. L1.
程序分析: 2 O! c0 Y. Q% l
2.
程序源代碼: 7 p6 N2 f( o# ?
#include "stdio.h"
+ W5 `# b! T+ i: j% G( M! O% f: E
varfunc()
& U6 A% r5 G8 e( o0 s1 V5 P- Y/ H{
+ H( t- B8 ^; l2 u1 W& G, G/ r
int var=0;
/ q" Q' n+ x* [5 H, D% X. i; Cstatic int static_var=0;
! a1 b" r9 F7 W$ H; I8 _& eprintf("\40:var equal %d \n",var);
3 u* T& i8 E; A! o0 R( \8 d. {! t
printf("\40:static var equal %d \n",static_var);
4 |% t9 T# j0 L& ~
printf("\n");
; s! l7 S7 W5 e- ~" y; X6 p W+ |2 b
var++;
+ @; B8 _3 Z6 b( g9 u+ G# V# s5 ]
static_var++;
" f5 _# U9 k/ H: Q0 K" L# @! p; A7 N
}
) P2 V. ]& A% p; ^. {. c% Qvoid main()
2 M" h7 v% U) p1 h{int i;
. S7 Y7 Q# {/ y! y6 a+ i) I: }4 a/ U
for(i=0;i<3;i++)
) S2 S- W! K. {( _varfunc();
( p2 C' a& K1 |/ D. r7 h# O1 c
}
5 h- t) f. \4 d1 _- [
==============================================================
0 g; T/ d$ G' Y( {: A5 z
【程序42
】
( G9 [' l$ A& J4 O* t" ^/ U題目:學習使用auto
定義變量的用法
, t% _6 s/ q2 Z" y$ n& }" X1.
程序分析:
5 @! t p. u7 R/ t. m2.
程序源代碼: # E8 S, v( Y% @3 U' w- b5 w+ w
#include "stdio.h"
% E3 N- `: [( l/ |( v- [
main()
: T' Q6 `/ x2 n9 r) f" l
{int i,num;
6 R% w* q# Y& @& P6 W6 ^- f( J# P' ]num=2;
2 I9 n- h! ^; b) o4 O7 W/ I9 b% ~
for (i=0;i<3;i++)
' _% \; l: ?8 }5 M
{ printf("\40: The num equal %d \n",num);
: ~& H% O8 b% ?) W5 q! |
num++;
$ A, B/ m! B; R& y
{
7 L! R6 j- t8 Q9 B5 M; \) jauto int num=1;
: T( p) f; K( Y# Mprintf("\40: The internal block num equal %d \n",num);
3 |# P1 U( }2 `1 D5 R, f( C
num++;
6 g- Z- \4 a2 b9 W# J9 O5 |
}
1 l f& B0 Z! M7 X( u- o
}
1 o( a. }& Z9 u7 h}
$ P" ^ o; w, V; p; E2 m) I==============================================================
5 y% |0 r- @7 x
【程序43
】
2 k9 p5 g. F+ G題目:學習使用static
的另一用法。 / h8 n& D4 [' z0 S* }
1.
程序分析: 0 `. ?3 b( Q) R3 A l
2.
程序源代碼:
% p3 y$ x% x+ ~+ F @#include "stdio.h"
, c/ T! y& ^/ K2 ]1 @
main()
: V6 G( V1 G5 K% g& o
{
1 C" O( w. E2 pint i,num;
, C, V2 P" b6 m, U- T
num=2;
) G, _' h" W( d- X. Gfor(i=0;i<3;i++)
# T N7 v: U/ d1 y7 p0 k{
+ M. b% M0 Z j2 c% Hprintf("\40: The num equal %d \n",num);
+ g/ `5 x- x# l: Hnum++;
$ m# q1 ~6 b% X$ ~
{
`! o6 _ S9 h0 W' H/ vstatic int num=1;
0 s7 T% [4 G* l8 j1 |& c( N8 Xprintf("\40:The internal block num equal %d\n",num);
+ Z; X( i& @0 W' f' E- _
num++;
, Z7 T( c, v4 o8 h& L}
8 e V6 X* D: n9 c1 A
}
7 ]+ z0 K' U' g$ r6 C( ~3 x}
0 d) C$ j! T) w$ |* o* o
==============================================================
0 h1 |* K. B- F& `; ^; z |
【程序44
】 D( B* X% B, Z+ |5 |4 _* N) K
題目:學習使用external
的用法。 + I% _& T' o# A7 a
1.
程序分析: 6 U1 ^# Y' G2 [! R, Q. q( i, e
2.
程序源代碼: , i2 V0 ]) a$ D+ K
#include "stdio.h"
1 k% C& g& r7 l
int a,b,c;
+ M' }; P. j! P9 }: y6 a
void add()
v, `. Z, k3 v$ I. [{ int a;
& g- ^% P( z6 Y8 L- Z
a=3;
" K# z1 @8 V- S% J2 k) L
c=a+b;
, N z+ e" s. m, K( ?8 [+ w
}
+ J; [9 b# n, o
void main()
9 ?# _. u) X& s, q{ a=b=4;
, g4 j: B% r5 ]/ K2 g
add();
6 l$ ^% }- y( c4 j* D: ^printf("The value of c is equal to %d\n",c);
' Z o7 \$ P3 x4 } ?
}
( Y) }$ G( V2 l H! [; Z: g==============================================================
8 a7 _. n: I9 R# u1 H6 M# A8 d1 C【程序45
】 0 K) d" R" E ]! U' I
題目:學習使用register
定義變量的方法。 * ^$ o0 l$ p2 c# z; N; T
1.
程序分析: . N6 f! O" e* I( z" O+ t: }
2.
程序源代碼: + ]8 D. t$ t7 b5 L4 _/ |# R% K. t
void main()
9 T: m+ r" P! w; C$ I{
6 |* G! u2 S% }- ?( d+ [* h
register int i;
0 {1 ~$ k: C9 _2 ~0 [7 h
int tmp=0;
/ `6 o9 T' I0 t) ^+ z4 e
for(i=1;i<=100;i++)
0 l9 m2 x/ V, I- e6 @ P$ C4 ~; L! otmp+=i;
2 I" A3 V) R# R" V# |2 oprintf("The sum is %d\n",tmp);
; Y4 z0 f8 M0 }: ^5 Y
}
; e" z( g, ]3 h; z% P, m! a3 {==============================================================
& w( c) @$ d( z7 }% t( N【程序46
】 6 Z. j) W1 `% J- R: p3 C
題目:宏#define
命令練習(1) 7 V9 n4 G! F* u; ~2 S+ ?5 e8 D
1.
程序分析:
& E/ E0 Y1 [+ v; z* G" ~9 V2.
程序源代碼:
9 V; z/ g, ^- t7 Z#include "stdio.h"
- `, M3 N0 s0 C4 {
#define TRUE 1
8 k4 g' e! h) ~6 n6 r. i" K( m+ U9 U$ G2 `
#define FALSE 0
, [1 c1 m* P" G- s3 e* i- u6 \9 d#define SQ(x) (x)*(x)
' i$ q/ [- f9 x9 V) m
void main()
3 J$ Z* k5 B2 }, `: h t) v{
' J! E+ v& m& c& }int num;
+ u# o! s8 Z2 h& }# Z
int again=1;
, P) K2 N2 k+ S1 ?$ ~9 |, |
printf("\40: Program will stop if input value less than 50.\n");
+ v' k, I( M- G( a) _4 b. e3 twhile(again)
0 N2 w X0 G6 Q4 q{
- ?1 `2 K6 d; r" q2 \" `
printf("\40

lease input number==>");
" l$ s, y" c- d6 I' b' O) L" W
scanf("%d",&num);
; @) u; z7 ~1 N; V3 d& hprintf("\40:The square for this number is %d \n",SQ(num));
7 _8 t# ]& m4 Rif(num>=50)
. x# g9 L$ _1 b" R
again=TRUE;
% r) t t: G: ?9 J. l
else
) Z3 R$ `1 ^- i w3 b: W
again=FALSE;
4 z e+ _' ^ M}
$ ~( _9 T" o I0 Y R7 w
}
7 _+ A- t0 l V- b6 E% W- G==============================================================
) R+ y# b% x( q( s
【程序47
】 : l# C( w( k3 R: n$ Q
題目:宏#define
命令練習(2) 8 x9 i5 U* N! K1 ? ^2 Z
1.
程序分析:
; M/ `, C4 J6 p) }9 A8 {- M2.
程序源代碼:
8 h8 G- \5 ]( W6 Z9 T3 `( L#include "stdio.h"
! z. F2 D- f# r# H8 |
#define exchange(a,b) { \ /*
宏定義中允許包含兩道衣裳命令的情形,此時必須在最右邊加上"\"*/
/ k, Y9 B: l! _ M$ eint t;\
& N- x- m% G6 _$ f, H
t=a;\
6 P- Z+ \) B5 O( r( k; za=b;\
! m: g! }2 p2 f
b=t;\
" F) ?" L! c F% P" B) Q1 v( Q( C}
; R1 N4 [+ D- R4 F/ |' a
void main(void)
1 X7 t2 Q9 ~$ ?{
* L# K2 Q0 p. @: h) d
int x=10;
. D: g/ u' T6 _) Iint y=20;
5 Y. x2 X$ W7 h' \, {
printf("x=%d; y=%d\n",x,y);
: K5 |+ a0 }0 \7 i$ ?3 C, v
exchange(x,y);
! h) O1 }( u4 i/ ?# F2 ~" kprintf("x=%d; y=%d\n",x,y);
6 L p9 K* u3 M. e( ?}
$ W* L9 V9 R: O$ Q j; S==============================================================
9 ?3 [1 W4 h, F a% S
【程序48
】
0 a( J9 T1 C8 [/ Z$ _. L6 o% ^題目:宏#define
命令練習(3)
) e* r8 X5 ?# P1 w5 w7 ]# @1.
程序分析: x. c7 f8 a* A0 i
2.
程序源代碼: 1 l, L4 u! T1 }7 f0 |2 D/ w4 p& j
#define LAG >
0 ]3 O5 h4 \9 q8 r0 a4 w5 ]
#define SMA <
0 a3 h( H: g0 Z6 Y# N& w/ J#define EQ ==
+ b' Z9 N/ p' |& o# H
#include "stdio.h"
! ?" o$ r# g+ w& }& z
void main()
/ g4 e: Q2 A/ u5 n0 o
{ int i=10;
9 L& g+ E' E' d* \% jint j=20;
, t; j: b$ y; A v" u- Xif(i LAG j)
0 M ]+ m Q- Y. g" Z' n/ f
printf("\40: %d larger than %d \n",i,j);
8 o7 Z# ?5 [4 x) s6 X ~: ?
else if(i EQ j)
8 m# k# `1 Z+ p% z5 w8 f0 Jprintf("\40: %d equal to %d \n",i,j);
6 J1 ]# a m- |
else if(i SMA j)
3 f* v% P4 m$ f+ q0 U0 i5 e- eprintf("\40:%d smaller than %d \n",i,j);
: a. H$ _: ~: zelse
5 ^# T( j" F; S. y
printf("\40: No such value.\n");
4 R8 z8 Y1 M5 ^( u u* v" ?, t
}
: ]% j/ L7 V9 A( O4 r2 ~! T==============================================================
/ c2 K& Z) d' |; w) M1 J! h2 i