You are on page 1of 52

!

" #
................................................................................................................... 3
$# % ......................................................................................... 3
&# ......................................................................... 11
'# "( ......................................................................... 17
" )*+ , # & #- # ' . / # 0 #$$1$& # $2 31$4 * + ,,
# & #- # 5 $/ # 0 #$5 1$6 # & 30 1. 4 % , # ' #' #$' # 6 & /
' #' #$5 # 6 & / ' #' #$6 # 6 ' / ' #' #$0 # 6 6 / 7 + # ' #0 # 5 - 10 # ............... 18
5 # % , ................................................................................................ 18
6# .................................................................................. 22
-# 8 9 1: ; ; : ................................................... 24
0 # : ....................................................................................................... 28
.# ............................................................................ 28
/ 9 ; 9
9 / " ; 9 #...................................... 32
2# .......................................................................................... 32
$3# ..................................................................................... 35
$$# (< 8 9 ............................................. 38
$& # ; ................................................ 40
$' # .................................................................................................. 42
$5 # ................................................................................................... 43
$6 # ................................................................................... 44
7 = ; )

FAQ topics

$# %
&#
'# "(
5# % ,
6#
-# 8 9 1: ; ; :
0# :
.#
2#
$3#
$$# (< 8 9
$& # ;
$' #
$5 #
$6 # > /? ; / #@

/ " = 1 A = )

Section 1. Null Pointers

$# " / B

) 7 ; ; " " /
11 C C 11 ; 9
" "
9D # 7 / 1 " +
/ " # >
" / "
) C C ;/
C C C ; #C@

"" " E
# A 9D 4
E ; # = 52/
66/ .6#
" 9 / "
/ " "
"" 9 "" # ; ;
A / 9 "
" = / A
" > 9 @#

" )*+ , # 6 #5 # 2 0 1. 4 * + ,, # 6 #5 # $3& 4 +


# 6 #' # 2 $4 % , # ' #& #& #' # ' . #

&# , C; C ; B

) ; ; ; " / 3
< # 7 /
E / ; /
9 < " /
3 = /
; 1 # 7 " /
" ;" ; " ; )

F G 34
"> HG 3@

/ ; 9 ; "
; E 9 < / 9 9
3C C # /
I < C < C A 9 1 ; / 1
1 " ; # 7
; " < / <
= )

< >CJ9 J C/ C C/ C1 C/ C C/ > F@3@4

," > F@ / A
/ ; 3 # >%
I < ; < ;#@

" / ; ;9
C ; < /C " 9 /
= / "
/ 9 ; 3K #
" 9 ;
9 1 ; ; / / <
= " ; # , "
" ; / ; ; ; "
/ " 1 % ,
/ A ;#

I 3 A ) (< = )

E " /

;
9 ;
; "

" /
/
"< ;

" )*+ , # 0 #0 # $2 3/ # 0 #$5 # $2 & 4 * + ,,


# 0 #$3 # & 30 / # 0 #$0 # & 32 4 + # 5 #- #' # 0 & 4 % ,
# ' #& #& #' #

'# % I :: L " B

) " / " 3K
; ; # /
% I :: L " >9 M # N M "# N@/
3> > F@3/ 9 @# ;
A < 9 3 ;
3 % I ::
= # 7 4
% I :: 9 A 3 ; E 9 >
< @ 9 " # , / 9
9 " % I :: > 9 " 3@ " ; #
>7 9 = & 9 " % I :: 3#@

% I :: O O 9 " 4 = .#

" )*+ , # 6 #5 # 2 0 1. 4 * + ,, # 6 #5 # $3& 4 +


# $' #$ # & . ' 4 % , # 5 #$#6 # 2 2 / # ' #& #& #' # ' . /
# 5 #$#6 # 0 5 #
5# % I :: 9 L " E 9
" B

) ; A
>@ " /9 A
"9 # ," E 9
" / K 9 ;
; = /9 ; C3C C% I ::/C
# 7 " /L " ; % I :: 3 "
E /
9 > @ ; K
3K
< #

6 # ," % I :: " " )

L " % I :: > F@3

K A " % I :: AB

) % ; # 7 9
"" " ""
" # 7 ;; L " A % I ::
; " < ; A
/9 ; 9
9 / ;

,:( F" G % I ::4

" #

% / % ,

L " % I :: > F@3

" " % I ::# ; ; A


>9 ; / = 9
@ " ; % I ::
> #;# ,, % I :
@#

-# ,
L " % > @> F@3

9 " #

) 7 A/ ; / 9 # ,
; 4 = &# ,
A A # , ;;
A 9D " / =
A L " " / /
O O ; " #

0# , 99 C "> @C " 1
B " "
E B

) = 9 " < > "/


/" / / + + / PP/ H/ B)
@/ " <
= E / # 7 /

"> < @

C < C < /
" 9

"> < HG 3@

9 ; < C C" C < /C

"> @ = "> HG 3@

< /
> @3 / # 7
A 4 A /
; " 9 # 7
" O O #

7 9 ; / H/ 9 9 " )

H< = < B3)$

, " < "


">H @ = "> GG 3@

C 99 C "> @/ ; " ; /
9 9 9 #

= 0 $#

" ) * + ,, # 0 #5 #0 # & 35 4 + # 6 #' # 2 $4 % ,


# ' #' #' #' / ' #' #2 / ' #' #$' / ' #' #$5 / ' #' #$6 / ' #- #5 #$/ ' #- #6 #

. # ," C% I ::C C3C = / , B

) ; 9 C% I ::C 9
< / 9 ; "
# " " ; C% I ::C C3C
9 ; C3C 9 L " / "
C3C # 7 ; #
; C% I ::C C3C
; 9 C3C " 9
E / ; / < # ; "
C% I ::C > C3C@ 9 ;
4 ;
> " ; K @"
; ; 3K " ; 3K #

% I :: O O 9 A "3 = /
; ; A/ 9 ; ;
; # > % , L " " % I :: 9 > F@3/
A 1 < #@ , /
% I :: ,, >% I :@ #
"

L " % I : KQ3K

" #

" )*+ ,, # 6 #5 # $3& #

2# K 9 9 % I :: > 3@
" % I :: ; / E
B
) % # ; 9 " " 9
9 9 ; ; / O O
% I :: " 3# ; / ; ; ;
1 3K > < @; #
% I :: #

$3# ,K " # % I :: ; 9 3/ 9
B

) C C C% I ::C / "
; 9 )

$# 7 / 9 ; ;
" = $# , ###

&# 7 > 1 @ " /


9 19 13 9 ""
" "" # 7 9 "
# " ;
/ ###

'# 7 <" / ;
C3C# , " 9 ###

5# 7 % I :: / L " 9 C3C C> F@3C#


/ ;/ ###

6# 7 ,, >% I :@/ 9 E /
9 < #

7 C C> @
" $/ C3C " '/ E
C% I ::C " 5#

$$# " ; B
= " B

) ; A A
9 ; # 7 "
9 /
/ E # 7 "
>% I ::@ ;; ; ;
/ # 7 C "> GG 3@C
;" " ; /
3 /9 " # /
9 " C C>
9 @ " A #

; " " ;
A > C C/ A @
= # 7 C C
" / "
> 3K @/
# % / " / A "
C C 9 C3C/ A / <
C3C 1 < ; ; E
" ; / " 3
9 / A#

$& # ,K " # ,D K
""#

) )

$# " /
C3C C% I ::C#

& # ," ; " C3C C% I ::C ; "


/ < 9 "
9 ; #

7 " K
; / "
/ K A # I =
$/ & / '/ . $$/ K " #

$' # R " ; / K 9
= 9 9
E B

) ," " / ; 9 1 9

9 / E 9 /
;;
" #
/ = B
; " = A ; "
/ E E # ;
E A
> < " 1 ; " 4
= 6 6 @# * 1E 9
" /9 O E O " ; 9
"" " " # >," C C =
C3/C = $$/ ;
E #@

$5 # / E
B

) C "" " 1
9 13 # / ;
1 9 3- 333
#C

11 9 /9 # 9 E /
1 / $2 2 3/ ; $5 0 #

7 C C ; 63 /
; 30 0 0 0 / "" 3" / "
:J,# : ; 3/ "" 3"
/ ; 7 % >7 %
@/ < 1
#

7 9 : / ;; /
4 M% ,:/ 3N
>9 < M 9D / "" N @
#

Section 2. Arrays and Pointers

$6 # , " <S- T " / ,


< F<# K AB
) 7 < F<
" # 7 C 1 1 17 C
C 1 "1 17 #C I < <ST#

" ) 7+ # ' #' # ' ' 15 / # 5 #6 # - 5 16 #

$- # , <ST F<#

) % # > "
" 4 =$2 #@ # 7
C S- T4C = " < 9
/ 9 A 9 C #C 7 /
C C < # 7
C F 4C / =
# 7 9 A 9 C /C
> ; " @ #

/ # 7

ST G C C4
F GC C4

9 A
)

U111U111U111U111U111U111U
) P P P P P PQ3 P
U111U111U111U111U111U111U

U11111U U111U111U111U111U111U111U
) P FGGGGGGN P P P P P PQ3 P
U11111U U111U111U111U111U111U111U

$0 # ? " A <S' T ; ""


; < B

) # " ;9 A
= / < S' T/
C /C /
" # < S' T/
C /C "
/ / " "
# , < 9 /9 S' T S' T 9
K K/ 9 ; "" # >
= 2 . #@

$. # 9 C = " C B

) " " ; 9
; " # ;
C = C 9
; 9 #

C( = C " " ;A " )

" 1 "17 <


> < @ "
4 " 1 17 #

>7 < " E ">@


" + / ; E
" #@

= " " /
"" 9 " C 9 ;C ST
# , < " "
S T/ " C C /" ;
9 / 9 < 9
9 < S T# , / <
<S T > < @ /9 " / <
= F>><@U> @@#

" )*+ , # 6 #' # 2 ' 1- 4 * + ,, # 6 #' # 2 2 4 +


# 6 #5 #$ # 2 ' 4 % , # ' #' #& #$/ # ' #' #- #

$2 # 7 ; 9
" " B

) /
" # 7 " /
C A A C / #;#

"> @
ST4
9 " /
" " )

"> @
F 4

7 " "
/ # ," 9 /
4 "
; ; " ; C A A C
J " #

" )*+ , # 6 #' # 2 6 / # $3#$ # & 36 4 * + ,,


# 6 #' # $33/ # . #- #' # & $. / # $3#$ # & & - 4 +
# 6 #5 #' # 2 - 4 % , # ' #6 #5 #' / # ' #0 #$/ 7 + # ' #'
# ' ' 15 #

& 3# < D
#

) 7 # C C
9 ; /9 O O /
= $- A #

& $# , CD A C ; C < C
6 SC 9 "CT # 9 ; B

) ? /8 ; / 9 ; # 7
" " " " "
9 ;/ S T < = F>> @U> @@/
" O O < < / ; "
< ; # 7
" < " ;
9 "/ 9 " " "
9" > = 2 6 @#

&&# , 1
< ; #

) 7 9
# " ># # 1
@ / #
9 " ;/ 9 " #
>7 " ; 9 < "
/ ; " 1 K/
; " 1
1 #@ ," ; 1
" )

S? ,V ( TSW ,V ( T4
"> @4

" K )

"> STSW ,V ( T@ X###Y

"> >F @SW ,V ( T@ X###Y JF FJ

, " / "
; "C " C C 4C
" < #
" " /
A E / 9 "C /C ? ,V ( /
9 # 7 C C " /
C C W ,V ( > / " '1 /
; @ 9 #

," " ;
/ 9 9 1
#

&'# , B

) I / K # ; "
K # " 7
7/ 4 9 ; ;
9 " #
7 / 9 /
/ ; " ;
/" # > = && 9 #@
A " /
" #

," /
; A C >F @S% T4C % E " #
> = - - #@ ," E " A /%
9 /9 ; /C " A
E /C #

&5# , B

) , 9 " /
E 1 C #C 7
;C ;; C / ;
; 9 #
1 < )

FF G > FF@ > F E "> F@@4


" > G 34 M 4 UU@
S T G > F@ > F E "> @@4

>, C C / " / 9 /
A #@

? A K ; / A ;
" "" / 9 " <
)

FF G > FF@ > F E "> F@@4


S3T G > F@ > F F E "> @@4
" > G $4 M 4 UU@
STG S3T U F 4

, / " 9
1 A ; 9 ) S TSDT#

," 9 9 9 "
9 / 1
; / 1 1 )

F G> F@ > F F E "> @@4

/ " 9 /
; /D S F U DT# >
< /9 A ; =
K A < A
9 #@
&6# , F / ,
# K

>> F@ @UU4

AB

) , / C 9
"" / ; 4C
/ 9 " / 9
; / UU# >,
" < 9
#@ )

G> F@>> F@ U $@4

Section 3. Order of Evaluation

&-# I /

G 04
">CZ Q C/ UU F UU@4

52# ; " " / K


6-B

) ; UU 11
" " ; " /
"C " #C , O O ;
" " ; ;
9 " " <
# , ; 9
" 9 " < C" C
>9 " < C = /C % , K ; @# ,
< / 9
" " 9 " #

7 9 " 9; "
"" > ; 9; 9 ; @ 9
" # >% / / K /
% , /" C " 9 C 9 "
#@ K "
; > 1 <
< 9 A @4 *+ /C " K A O O
/
#C

" )*+ , # & #$& # 6 34 * + ,, # & #$& # 6 5 4 % ,


# ' #' # ' 2 4 7 + # ' #0 # 5 0 4 # 2 #6 # $& 31$#
>,; + # 0 #$& # $2 31$/ 9 #@

&0# 9 + + / PP/ B
, A C ">> G ; >@@ GG ( PP GG KQ K@C ###

) 7 < " /> B) @4


" = ># # " 1 1 ;
; @# 9 A A #

References: K&R I Sec. 2.6 p. 38, Secs. A7.11-12 pp. 190-1; K&R II
Sec. 2.6 p. 41, Secs. A7.14-15 pp. 207-8; ANSI Secs. 3.3.13 p. 52,
3.3.14 p. 52, 3.3.15 p. 53, 3.3.17 p. 55, CT&P Sec. 3.7 pp. 46-7.

Section 4. ANSI C

&.# C % , BC

) , $2 . ' / % ,
/ W ' [ $$/ E " ; ; # ;/
/ ; 9 /
K A " " %
/ W ' #$6 2 1$2 . 2 / 9 $5 / $2 . 2 / 9
; " $2 2 3# / % , E < ;
/ " " UU > 9 "
@ " > ;
1 9 ; = @# 7 % ,
" E 1 9 #

7 9 C /C <
" / 9" 9 /
; " # >7 C
" % , W ' #$6 2 1$2 . 2 / 9 " "
#C@
7 9 /, J,(
2 . 2 2 )$2 2 3/ ; #

&2# ,; " B

) 9 "

% ,
$5 ' 3
% ? A/ % ? $33$. I
>U$@ & $& - 5 & 5 2 33

R 9 ( ; ;
& . 36 R
, / 2 & 0 $5 I
>U$@ 0 $5 & - $ $5 6 6
>. 33@ . 6 5 0 $0 2 >I # # + @

7 " % , \ 6 3#33/ \ - #33 ;#


9 # >% % ,
" " /
O O 9 #@

7 /9 "/ 9 9 /, %
312 & 2 ' 3- 130 15 #

' 3# " ; 1 ; % ,
/ " ; ; B

) 7 ; / E E / 9 A "
9 C C" "
# >7 ; O O " 19
9 C C % , #@ 7 ; <
R% I /; # : A " "
E 1$#' 2 #3 9J; # # # >$. #0 $#3#' . @/
#

; < / " #
> = 2 5 #@

' $# K "" 9 C F C C F CB
) C F C > K
; @4 C F C
> 9 @ ># # K ; @# >
C C # = - - #@

'&# % , 9

< " >" @4

" ><@
" <4
X###

) ? < 1
C < " >" @4C 1 "
C " ><@ " <4C# > % , / 9 "
@ " 9 ;
; / ; 9 9 ;
9 A " " " #

7 9 9 "< 9 ; 1 <
" )

" >" <@ X ### Y

9 ; ; 1
1 " )

< " > 9 @4

>, / 9 ; 1
" 9 / ; "
A #@

" ) % , # ' #' #& #& #

' ' # ,K ; ; ; < ,K L " ""


#

) I % , / < C ""C L "/ L " "/


L " " "C ; A #C 7
9 = >
A
A 9 ; ; " @/
= # 7 " / 1 ; ;
9 9 C "" C JF
FJ# > = 2 - #@

" ) % , # & #$#$#& # - / # ' #$ # $2 '0#

'5# , / "" ;C
C ; B >,K ; < >@/ K
#@

) % # 9 ; / A ;
E ; >" @# ," K
; < >@ 9 ; ; ; / K
> C C /"
9 @#

" ) % , # & #$#& #& #$ # 0 1. #

'6# % , ; <
" < " ; " B

) 7 9 A "
% ,
# 7 " 9
O ; " O " < / 9
< ; # 7
;/ 9 9 9 / A
C 9 /C # # " A <
#

7 / A 9
/ # >7
C " #C@ ,"
; / ; " A9 9
A ;
" ; " < " /
< 1 ' #$#& W ' #$6 2 >
= & . @/ <
9 #
" ) % , # ' #$#& # & $/ # ' #2 #$ # 2 - /
# ' #$#& # $2 1& $#

'-# B

) = " /
/ 9D
>C C@ 9 #
, "" " <
/ A / 9 # "
"" " " ; /
/ " "
#

" ) % , # ' #2 #- #

'0# L ; ; " B

) 7 L ; ; / 1 " C
C 9 " " 1 "
< ) ; / A ;/
; > A JF % 7 ( ( FJ @/
#

" ) % , # ' #. #- #

Section 5. C Preprocessor

'.# , ; B

) 7 ; = # ,"
; / 1A A ; < 1 9
/9 A" " ;1 /
> A " 9 /
C 9 C " ;
]G9]G ]G9 / A ;/ ; 1
"" / ###@# ," 9 "
9 > ; @/ /
A " /
" #
7 9 1 9 9 " ; 9 ;
/ K ;
; #

'2# , "
A

L " > / 9@ JFFJ9

9 K A #

) 7 " 9 "
A ; " "
/ 9 K# % , "" >
*+ @ # /
" ; A / % ,
1 " A 1 ; /L L / 9
A )

L " > / 9@ L L 9

" ) % , # ' #. #' #' # 2 $/ # - - 10 #

5 3# K 9 1 B

) 7 ; 9 A "
; " 1 # 7
C C 9 ; " / 9
# 7 9 9 9 1
/9 < "
A > ; /9
< @ "9 " "J
< #

L " >@ XQ
JF FJ Q
$4 Q
&4 Q
JF ### FJ Q
Y >3@ JF > ; 4 @ FJ
C C / < 9
; ; " < # > E ;
C C 9
3/ ; #@

," "
< / / =
; / E < ;
# >7 = 9 C #C@

" ) 7+ # - #' # . & 1' #

5 $# , A 9 9 "
; B

) A " ; ; /
9 " /
; ; )

L " ( I R> ; @X ">C ( I R ) C@4 " ; 4Y

"> HG 3@ ( I R >>C Z Q C/ @@4

7 9 ; 9
< # >, " 9 9 1"
" / A 9 9 " ; 1
" / # = 5& 5' 9 #@

Section 6. Variable-Length Argument Lists

5&# , " A 9 9 "


; B

) I M ;# N > /" / M ; # N@#

" 9 9 "
; K )

L M "# N JF " % I ::/ E O FJ


L M ;# N JF " O "" FJ
L M ;# N JF " FJ
L M 9# N JF " FJ
F > F" / ###@
X
E O G 34
F 9 "4
O ; 4
F 4

">" GG % I ::@
% I ::4

G >" @4

O > ; /" @4

>> G O ;> ; / F@@ HG % I ::@


UG > @4

O > ; @4

9 "G > U $@4 JF U$ " ; Q3 FJ

"> 9 " GG % I ::@


% I ::4 JF FJ

> @ > 9 "/ " @4

O > ; /" @4

>> G O ;> ; / F@@ HG % I ::@


> @ > 9 "/ @4

O > ; @4

9 "4
Y

I ; ; A

F G >C / C/ C HC/ > F@% I ::@4

% ; # >
" / K ; #@
I 1 % , / " "
>C F >" @ F" 4 XC@/
M # N M "# N/ CL M 9# NC
C < F >@4C/ " E O # ?
> @ / ;
A ; " ;# < = " #

" ) * + ,, # 0 #' # $6 6 / # 0 # &654 + # $' #5


# & . - 12 4 % , # 5 #. ; 5 #. #$#' #

5'# , " A " ;


9 9 " ; / A "/
" " AB

) I "/ " "/ "#

C C ; /
9 ;C )C )

L M # N
L M ;# N

> F" / ###@


X
O ; 4
" "> /C ) C@4
O > ; / " @4
" "> / " / ; @4
O > ; @4
" "> / CQ C@4
Y

7 M ; # N A ; / "M ;# N/ ;
" )

> O @
O
X
F" 4

; O
O > ; @4

" G O ;> ; / F@4

9 O " "# >%


" O #@

" ) * + ,, # . #' # $0 5 / # $#& # & 5 6 4 +


# $0 #$& # ' ' 0 4 % , # 5 #2 #- #0 / 5 #2 #- #. / 5 #2 #- #2 #

55# , ; "
B

) 7 " 9 9 ; #
; >@ " /9
= 9 / 9 "
/ 9 " ; # > ;
#@

" A 9 9 " ; 9
9 " ; "
# "1 A " 9 A ;" " ;
" >Z A @ " ;>
" " 9 " " ;
; @# = > "
; " @
>" 3/ 1$/ 1 @ "
> < < = &
5& 9 @#

56# , " A 9 9 "


; " > A
9 9 " ; @B

) , ; / # ? "
" O / " "
< 9 # ," ; 9
; > ; O @
" " >"
" ; / O 1 ; @
9 9 # >7 9 9 9
; 1 " 9 ; ; #@

Section 7. Lint

5-# , D ; / K ; ; #
; ; B

) 7 ; " # "1
/ ; ;
"" ; #

50# , "" C ;) 9 ;
9 C ; ; " B

) 7 9 " A /
9 / C 9
; " ; " " 9D #C , 9
" / ; L " "
L " " / "" ; ""/ 9
L " ;" ;
9 # , 9
; ; / ; 1 #

5.# ,; % ,1 9 B

) < : 9 > C " /C


" K @"

R "
' & 30 ; :
; / $2 5 & - I
>U$@ & $6 6 . 5 5 & - $

7 8 5 % ,1 9 / 9
>9 @" I < : 9 >
9 " 7 + 7 @/ " 8 #

Section 8. Memory Allocation

52# K " ; AB
F 4
">C7 ;)Q C@4
; > @4
">C? QCZ QCQ C/ @4

) 7 9 C /C ; "
9 /
9 ; # 7 /
C C # > 9
E / ; 9 ; /
; C C #
= . 6 #@

7 = 1 A ; ;
/ " / 9
)

L M ;# N

S$33T/ F 4
">C7 ;)Q C@4
"; > / $33/ @4
">> G > / KQ K@@ HG % I ::@
F G KQ3K4
">C? QCZ QCQ C/ @4

% < "; "; >


; @/ E " 9 " /
"; " "
1 ; # >I " " < / ";
;Q / ; #@ ,
9 9 9 "" /
J E E >L " % ( ,V ( $33@#

6 3# , K ; A# ,

F $GC / C4
F & GC HC4
F ' G > $/ & @4

9 ,; ; #
) ; / 9 "
# 1 ;
; # " 9D
< > "C ; /C
; @# 7
; ; > < @" "" "
" 1 ; /
9 ; / 9 ; #

" 4 ;
" / # 7 " / "< 9
" ; "" )

$S& 3T G C / C4

" " ; > $/


@/ ' 9 " #

" ) 7+ # ' #& # ' & #

6 $# ; " A FK
; # , A ; B

) , ; / ; O O
/ A ;
" # ," 9 K
< / K 9 #

7 " I <1 ; 9
;# 7 " ;
" " 9 K
9 # , /
> #;# ; @/
" 9D > / 11
= $. $2 #@ < >@#

6&# ? K 1 " " /


B

) % # ; " "
" C " 9 4C 1 ;
= 9 % ,#
; ""
9 /9 #
" ;> @ " " ; ; 1 A )

F /F < 4
" > G9 4 HG % I ::4 G < @X
< G 1N < 4
" >> F@ @4
Y

" 1 9
< G 1N < /
< #

" ) % , # 5 #$3#' #& # $3& 4 7 + # 0 #$3


# 26#

6'# " >@ A 9 " B

) 7 J" A ; 9 E " 9 A
/ "
E " ;#

65# , ; " ;
>@B B

) % , ; > >###/ 3@/


" @/ 9 /
9 # ; 1
A "1 ;
; #

" ) % , # 5 #$3#' #5 #

66# "" 9 B , "


K E 1" ; " " ;1
B " A /
" B

) > / @ =

G > F @4
> / 3/ F @4
7 E " 19 1E / " ;
" E " > = $1$5 @ " ;1
# " > @9 "
9 #

" ) % , # 5 #$3#' 5 #$3#' #& #

6-# ; B

) "
" # 7 /
" K C A" C
< #

9 9 / ""
A# , 9 >
9 A19 " @
" /
"; > >$33@/ $33/ @#

For these reasons, alloca cannot be used in programs which must


be
widely portable, no matter how useful it might be.

Section 9. Structures

60# , 9 ; 9
" " /9 *+ , #

) *+ ,
9 " " ; " /
" ; ; " "
K *+ , 9 ; 9 # ;
" A ; /
/ " % , /
9 #

" )*+ , # - #& # $& $4 * + ,, # - #& # $& 2 4 +


# 6 #- #& # $3' 4 % , # ' #$#& #6 / ' #& #& #$/ ' #' #$- #

6.# ; ; AB
) ; " /
A/ ;
= # > "
#@

" "
9 < / 1 C C ;
" # " /
" / ; 1 "
/ % , #

" ) % , # & #& #' # $' #

62# 7 " ; ; A /9 "


" # B

X
F 4
F < 4
Y

JF ; # FJ

> ; / ; @
###

) ; 9
# >7 9 "
; #@ 1 "
9 ; /
; " >@ < ; /
; > /9 1
@# = $3$#

" ) 7+ # & #' # & $1& #

- 3# K B

) 7 9 "
K 1 " # 9 1
9 19 9 9 9
C C > ; A
; " " @# " 19 1"
= 9 " / 1 "
; #

," /
" # UU ; " GG
" #

" ) * + ,, # - #& # $& 2 4 + # 6 #- #& # $3' 4 % ,


# ' #' #2 # 5 0 #

- $# , A )

X
4
S$T4
Y4

A A A
# , ; J 9 B

) 7 = / ;
C #C 7 % ,
# , 9 9 A
# > A 9 "
; ; #@

-&# , 9 "" " " B

) % , " "" " / 9 "


9 4 M "# N# ," K / ;;

L " "" "> / @ >> E O @ Q


>> F@+ >> F@ 3@1N 1> F@>> F@ 3@@@

7 $33Z 9 4
; " #

< = " ; #

" ) % , # 5 #$#6 #
-'# , " 9 B

) 9 " "" / ; "" ">@ #


7 "" "" 9

"" 9 G "" "> / 9@

," " / 9
" "" 9 / 9K 9

F> F@>> F@ U "" 9@ G 4

Section 10. Declarations

-5# ; B

) ," ; ; >9 '&0-0 9 1' & 0 - 0 @/


;# /" > ;
@/ # / # ,"
1 " " J ;
/ ; ; # > 9
< " ; ; #@

; ;9 " 9 #
(< " " 9 A
#

; ; 9 C C /
; " 9 K #

-6# , K " A " # ,

"
X
F 4
% ( 7 < 4
Y F% ( 7 4

9 ; ; # K
"B
) 4
< - #6 " * + A # 7
9 < % ( 7 "
C < C" # 7 "<
/" ; ; >C C@# 7 /
C < C" C < 4C/ J "
9 " " #
"< 9

X
F 4
F < 4
Y4

" F% ( 7 4

/ = "
; ; #

9 / /
; " "K
#

" )*+ , # - #6 # $3$4 * + ,, # - #6 # $' 2 4 +


# 6 #- #$ # $3& 4 % , # ' #6 #& #' #

--# , " " ;


" ; B

) 7 = 9 >
6 @)

$# F>F>F S6 T@>@@>@4

&# ; / ; " )

" F 4 JF FJ
" " >@4 JF " ; FJ
"" F " 4 JF 9 FJ
" " " " >@4 JF " ;### FJ
"" " F " " 4 JF ### FJ
" " S6 T4 JF "### FJ
'# I ; / ( ;
)

N 6 " " ;
" ;
F>F>F S6 T@>@@>@

< /
/ " ; ;
>" " " / A 9 @#

; 9 A <
C C >C
C@#

" ) + # 6 #$3#$ # $$- #

-0# ,; B

) 9 1 9 # $5
" # # <# > = 2 5 #@

" )*+ ,, # 6 #$& #

-.# , " "; <" ;


" /9 , E B

) I ; A

< " >@4


>F" @>@ G " 4

" " < 9


9 ; ># # " 9 C>C@/ C C
># # A @/
#

< < " " /


< "
>; /9 " " 9
C>C@#
- 2 # ,K "" " ; ;
" # K B

) ; / " 9 C C
C C" / F > < "
/ A ; @/ 9 " ;)

/ ">@/ >F" @>@ G "4


G >F" @>@4

" ;
/9 C C"
> < / E @
9 # 7 ;/ % , /

G " >@4

; A / " "
# >7 ; 9 9; 4 ;
" " 9
; < ; #@ < F /
> /" 9
@#

" ) % , # ' #' #& #& # 5 $/ # 5 $#

Section 11. Boolean Expressions and Variables

0 3# ; " 9 B K
B L " 9 "
" B

) 9 /9 A ;
J "" 9 9
; # >I ; " 9 9 " / ;
#@

7 9 L " 9 9
;# I "
L " 7 I( $ L " ?( $
L " : ( 3 L " % 3

9 X" / Y4 9 X / Y4

$ 3/ ;
; D # > 9 " 9 " 9 ;;
< < ; 9 #@

" A

L " 7 I ( >$GG$@
L " : ( >H7 I ( @

" C C

L " , > @ >> @ HG 3@

7 K 9 ;> 9 @#

0 $# , K L " ; 7 I( 9 $ ; / E
C C B " 9 1 9
C C ; $B

) , > @ E /
9 C C/ # # 9
< # 9 ; 9 9 1
/ ; 9 $ 3# 7 " /

">> GG 9@ GG 7 I ( @

A < > ; 7 I( $@/ 9 9


# , ; / < ; 7 I( : (
9 /9 9 " > 9 /
/ #@ / / E O O
$# > /" 9
C ">> GG 9@ GG 7 I ( @C C "> GG 9@C/
B C ">>> GG 9@ GG 7 I ( @ GG 7 I ( @CB@ ;
" 9 7 I( : ( > A @ "
; 9 / "
" / #
7 7 I( : ( > / " / % I ::@
" 9 / 9 ; ;
; # 7 C C $ C" C3 ; 9
; ; # > = 0 #@

" )*+ , # & #0 # 5 $4 * + ,, # & #- # 5 & /


# 0 #5 #0 # & 35 / # 0 #2 # & 3- 4 % , # ' #' #' #' / ' #' #. /
' #' #2 / ' #' #$' / ' #' #$5 / ' #' #$6 / ' #- #5 #$/ ' #- #6 4
7 #

0&# "" 9 "


L " B

) / "" # ;
; / % ,
9 " < ; /
# >," < ; <
/D " ; ;
#@

7 ; "
; / 9 ;; 9 9
9 9 < # >
; " ;
< / ; 9 9
; ; @# ;
; E >
" ; @#

" )*+ ,, # & #' # ' 2 / # 5 #& # $2 - 4 + # 6 #6


# $334 % , # ' #$#& #6 / ' #6 #& / ' #6 #& #& #

Section 12. Operating System Dependencies

0'# , ; " A 9 ;
" B

) 9 " K /
1 = # 7 " " CA 9 C
; " " ; /
9 E 9 ; ; # "
9 A>@ " # I I % ,W /
> ( *
C C 4 , % % / O S8 ,% T O S8 7 , ( T
8 < @# I 1 / ; >@# I 8 /
; > R\@ # I ;
/ K # ;
A " ; 9 /9
9
" I ; ; #

; " = "
# ;# # = " = 1
A = ; ; # <#=
# #9 # # # % " =
"" " #
; 1 " =
K#

" ) # $3 # $& . 12 / # $3#$ # $' 31$#

05# ," " 9 " ;


> " / @B / ,
9 A " 9 B

) 7 / / ;1 1 " #
" >@ " # ; /
9 9 C 9 A ; ,J C/
C C/ , % ( / A9 >@/ A>@/
O% (: ? >@ " >@#

06# ; < 9
" " A B

) ; S3T " /
;# ? 9 9 ; ;
K ; < 9 "
; S3T 9 # /
; 9 #

0-# ; 9 B
) , ; / # "" ;
J " I <
"" # C C 9 "
9 ; ; / " / / 1 #

I I </ " >


>@ J >@ " @/
" /
9 O O ; 9 A #

00# " 9 1 ;
; B

) " >@/ E >@/


" > 9 @"
O (( /9 9 #

Section 13. Stdio

0.# (% 77? " "B

) " A ; D 9
; " # 7 A /
" " > (% 7 7 ?@ "
# ; ;
" / (% 7 7 ?#

" ) 7+ # 6 #5 # 0 ' #

02# ; K K
/ , ;
; #

) , 9 < "" > @


" 9 9 # "
"" " / C ; /C 9
# > = 0 . #@

. 3# , " A 9 ">@/ ;
, < " #
) ">@ ; " " 1" /
;" A 9 # , / CQ C
" ; / < /9
; #

, 9 "; >@ /
">@ ;" 9 "" #

. $# , " ; " B

) 7 9 / ; / 9 # I I </ " /
" A/ > = ; @
9 = / " " "
" " > ;
; " " A @# , 9
9 " " ">
" " @#

Section 14. Style

.&# K A)

">H > $/ & @@

, ; B

) % # 7 < "
9 < ; # 7 " ; = /
9 " ; ;; " = #

9 )

L " => $/ & @ > > $/ & @ GG 3@

.'# K 9 " B

) *+ / ; < " /
; < " ; )

7 "9 / ;
9 " #
" # A
/ #

, 9 >
"/ 9 @ 9 C " #C
," ; ># # @
;; / K " A ;
/D * + # >7 "" 9 ;
9 9 < < /
9 K # ,
R #@

" )*+ # $#& # $3#

.5# ,; C, R C ;
B

) 8 9 " " " )

) )

# ; # ^" J 9J # #V
>$& . #2 6 #$#5 @ > , ; @

# # J ; ;

;E # # 1 # 9J 1;

Section 15. Miscellaneous

.6# , " 9 " 9


< E B ," ; 9 9
CE /C ; ; " " ;1
E B

) 8 9 C C > /
"" / ; @/
; E E / " ;
CG 3C# 7 " / 9 E
>" @ " / 3#3 "
" ;1 #
8 9 C C ># # 9
; @ ;; 9 ; /
< E # % ; " 9 9
; 9 ; #

1 9
A ; 9 ; / 9 E 9
; ; / # 9
19 13/ 9 " "
" ;1 > = 6 6 @#

. - # ,K ; " ; = / ;
" /9 K A ;#

) C " ; C 9 9 C "
#C 7 ; = K "
9D 9 ; / /
# 7 ; < C; /C F
F# 7 9 9 A C C> FF@
" / ; FK 9 " #
" A )

> $/ & @ JF ; ; FJ
F $/ F & 4 JF F" % , FJ
X
>F> FF@ $/ F> FF@ & @4
Y

.0# % ,K ; " = #
A /9
K " ; " = # ,
" "" ;B

) 7 9 " / 9
; C; C> F F@#

..# > " @B

) [ "# >? K "


4 = 52 6 3# K
" 9 A / ;
4 A #@
" )*+ , # ' #- # - 34 * + ,, # ' #- # - 5 #

.2# , A 9 O
9 A 1 / O
9 ;# , " "
; ; O B

) % , " 9 / A /
O # 9 1 "
9
#

; ; O /9 "
" " 9 # 9 1
9 " " ; "
> /" < / " # / 9
A ; @/ 9 A 9 E #

" )*+ ,, # $3 # & 6 - 4 + # & 3#5 # ' - $4 % ,


# 5 #$& #& #' #

2 3# , " 9
"" E /9 / " ; " B

) 7 9 < " > ,,@/


" " " " A # >
A #@ A " ;
< " 9 ;/ ;
; # % "" " =
9 /9 ; "9 ; 9
9 ;#

," 9 " / 9 /
A ; " ,J 9 /9 A ;
" E " K W / ,K % #$/ ,7 7 K
W #5 32 #

2 $# , 9 ; " M; # N#
B

) < "
/ ; / 9 #
? D A " K "
< A/ ; <
# A "
> @#

2&# , > , / / / @" " B


> B@

) 7 "
; = " / 9
9 # " 4
C < 1 ; ; ; ;; /C ;
= " ; ; ; 1
" #

2'# A " ; " ; > / /


C C / ###@ B

) 9 1 ; 9 )

& 9 R / # # <
/ $2 2 3 >8 & $@#

# # < 9 /
> # # </ 8 $3/ 8
$' B@#

"& D 9 " : 9 / /
; # 7 " 9 "& / ;
C <" "& C 9! # #
H 9# >, 9 "
# # / J"& #@

:J # / $2 2 $#

7 " ;
)

9
&253 I #/
[ / 2 6 $& 5 I
>U$@ 5 3. 0 & ' 35 0 5
#
'-&3 % # ; #/ ' 3$
9 / 5 ' & $5 I
>U$@ - $5 & - ' 6 5 6 5

1 ,
2& :
< / % ? $$0 5 - I
>U$@ 6 $2 5 2 2 5 5 - $

= ' 3#

25# ,; " 9 1 ; B

) ," I / ; ;
# # < # # ; / 9 /
/ ; #
7 " J "
/ 9 1 / # # >$2 & #5 . #2 - #& @#
/ A " 9
# 7 # ;
" " 9 "
# 7 C C
" A ; 4 ;
C C ! = # # ; # " " #

26# < , 9" >, @9


B ,; " ;
B

) 7 " ; 1 # 7
9 " / )

X 9 / / E YH HD ; D ; ! #

" I < "


1[ / [ #
9 > = 25@
^J 9J #

2-# K B ; = ; B
) % ; / 9 "
9 " ; 9
; CJFC # /
9 C C ; " / ;
/ L " " L " 3 >9 = ' ' @#

7 = JF FJ 9 1
= ; / " /9
; > ; ; @
; #

" ) % , # ' #$#2 # ' ' #

20# , A "" B

) ( "" / ; " # ;# /
" A # "
; 1 # 1
/ " 9
9 9 < "" # > 9
/ " / C "" C
#@

, "" C C
; 9 # "" /
" ; " " ;
# " / 9
A ,J / 9
9 ; 9 "" ; ; = #

" " 1 /
A ; ; 4 C E C
; # " C "" ; A C
" = ;; > #;# 9 ; " "
9 " @ " 9
# C E C
A 9 A " ; #

" "" "" / ;


"" / 0
"* ; ; K 7 ( " ; ; /
[ K ; ( "" ; #
2.# " B "
; B , UU " G U $B

) = "
# ,"
A / K ; " # > "
"" ; " "
= # A K 9
; ; /" 9 / "
K #@

, C C" ; ;
9 /9 "
#

/ ; 9 1
/ 9
; #

" ; ; < G U $/ 9
; / A A 1 ; 9
# ; ; " UU /
UG $/ G U $# 7 " ; UU UG $
G U$ / "" #

22# " ;1 ; ; ; ;
"" "" #

) ; " ;1 "
9 9 < " 9 #
; ; / 9
># # " 9 /
= @#
I " " 9 #

K " ;1 9 < /
K " ;1 9
" = # > K E C" EE " C / #@

7 9 " "
; ; # ;1 "
C 4C "
C ; C 9
< #

7 9 ; " /
A " /" ;1 A# ;
; ; < 9 # A
L M # N/ "
; 9 #

" )*+ #- # $$6 1. #

$33# ,K ; 9 7 9 ;
; A C" ; #C

) " / ;7 9 > K
; 1$$ @/ " ; "
A A 9 # , / 1
" ;1 " " " 9
; Z / Z "/ Z ;# , 7 9 K
" ; ; " ;
"" / ;
< " ;1 " ; "
" ;1 #

, ; /= 9
" # ;# # 9 /" /
" ; > #;#
# # # ; @#

$3$# 7 ; 9 " H> ; 1 ;


9 ;; / 9 " " #@

) ? 9 9 ; >A 9 @
# "< 1 E A /
" A > #;# I <@ 9
" A ; 9 ; A #

, " 9 ;
> " " @#

> = 6 2 #@

$3& # , B
) >$ #/ ""/ % [ 3. & ' & / I @/ ; /
#

$3' # ,; ? ; " B

) 7 " ; " % , #
" ; 4A # 7
# # >$2 & #5 . #2 - #& @ # J # #; #V #
7 K R% I ; / <
*+ ,,#

" ) % , # #& #

9 ;

% , % " , " 11
; ;: ; ; 11 / % , W ' #$6 2 1$2 . 2 > = & 2 @#

[ : / ; ( "" ; / 1 /
$2 . & / , % 31$' 12 0 3& 5 5 1W #

+ # 9 R :# / ) " /
( / 1 / $2 . 0 / , % 31$' 1$32 . 3& 13# >
9 #@

A # / 9 " / / $2 2 3/ , %
31$' 1. - . 36 310 #

*+ #* ; #[ # ; /7 ( " ; ;
/ ( / R 1 / $2 0 . / , % 3130 13' 5 & 30 16 #

*+ , #* ; # /7 ; ;
: ; ; / / $2 0 . / , % 31$' 1$$3$- ' 1' #

*+ ,, #* ; # /7 ; ;
: ; ; / ( / / $2 . . / , % 31$' 1
$$3' - & 1. / 31$' 1$$3' 0 312 #

7+ * ;/ 7 " / 1 / $2 . 2 / , %
31& 3$1$0 2 & . 1. #

You might also like