1 int factorial (int n) { int i, - - PDF document
1 int factorial (int n) { int i, - - PDF document
2
❢❤❣✑✐❥❣✑❦♠❧♥✐♠❧♣♦❖q✱r❖❣✱s✉t✇✈✱①☎✐❥❧✦r✑♦✑② q✱r▲r③❧♥④✉②♣⑤ ⑥❤s♣⑦✇④☎⑧✱④✞❧✦♦③✐▲⑤ ⑨int factorial (int n) { int i, product = 1; for (i = 2; i <= n; ++i) product *= i; return product; }
⑩✶❶❸❷✙❹✛❺✞❻✞❼✚❽✏❾✑❿int
➀✏➁✞➂☎➃✙➄❵➅✡➆✁➆❲➇✚➁✞➄✏➈❡➃✔➆❲➀✚➉☎➊➌➋✞➍✞➎☎➏☎➆✁➐✝➉☎➎✞➃✙➎✆➄✏➃✙➆✁➍✞➄✏➎☎➃✙➄✱➅✡➄ ➏✔➉☎➊❲➊✿➃✙➄❵➅✜➆✁➆❲➏✔➉☎➎☎➇✏➃✙➄✏➆✁➃✙➄✱➅✡➀✢➑✇➉☎➊➒➈❡➃✔➆❲➓✜➃✙➔▲→✞➇✚➀✚➣✯➆✁➐✝↔ ↔ int ↕ ➙➜➛✦➝✡➞✱➝✡➟❲➠✙➡✁➠✙➞✏➢ ➤ ➥✚➡✑➝✡➦✆➧❡➠✙➥✚➡✁➨✌➞❵➝✡➩✢➫❡➠✙➭☎➢ ➝✡➞✱➝✡➡✁➤ ➯☎➦☎➠✙➦ int n ➲✙➳❸➵✙➸✁➸✑➺✓➻✏➼✞➽☎➵✙➾ ➚ ➸❲➪✔➶✞➹✿➘✔➴ ➷ ➺✡➸✁➶☎➾✏➬❸➺✡➸✁➸❲➮✌➱☎➬✞➪✔➸✁➴✝➶✞➬☎➵✙➬✆➸✑➺✜➾✢➵✔➸✁➸❵➺✜➾✏➽✔➱✞➹❲➵✙➬☎➸✃➺✡❐✿➸✑❒★➘☎➵✙➬int
❮ ❰✶Ï★Ð✁Ð❲Ñ✞Ð✁Ð✏Ò✱Ó✡Ô✞Õ✆Ö✚×☎Øfactorial(7)
Ù✔Ú✞Û❵Ü✡Ý✁Ý❲Þ✌ß☎à✞á✔Ý✁â✝ã✞à☎ä✙à✸Ü✜à☎Û✏ã☎å✗Ü✡æ ç ä✔è✢Ü✡Û✏Ù☎ß ç ä✙à☎Ý✁ä✙Ý❲é✡ê✙ë❸ä✔à❞ì í☎î✗ï✜ì ïñð♥ò✜ó✏ô ò✜õ✜ö✙÷ ø n ù✚ú✞û✁û✁ù✿û✏ü ý ý▲þ✏ú✞ÿ✁✄✂✙û✆☎ ü ✝✞✝✠✟✡✝☞☛✍✌✍✝✞✎☎û✁ü✑✏✞✝✍✂✒✝✔✓✄✕☎ÿ✗✖✘✟✡ÿ✁✙ ✚✜✛✣✢✤✛✣✥✧✦★✢✧✦✘✩✫✪✗✬✫✛✗✭✯✮✱✰✗✲✞✢✤✦✳✬✣✩✣✴ ✪✗✬✵✬✶✦★✷✯✴✘✸ ✹✜✭✘✺✱✷✞✻✗✷✍✦✳✩✶✢✵✸ ✼void wrt_adress(void) { printf(”%s\n%s\n%s\n%s\n\n”, ” **********************”, ” ** SANTA CLAUS **”, ” ** NORTH POLE **”, ” **********************”); }
✽✿✾❁❀✒❂✍❂✠❃❅❄❇❆✍❂✞❈❊❉●❋ ❍✞❂✔■✁❀✒❉●❆✍■✁❂✞❀✒■✗❃✡■❏❋ ❂✞❑✞❀✒❂✞❉●❋ ❂✞❑✔▲ void ▼✣◆❊❖❁P✒◗✔❘✣❙✡❚❏❯ ◗✞❘●P ❱ P✒❲ ❲ P❊❚❳◗✍❨✍❩✞❚✗❙❅❬❭❙✡❚✗❙❫❪❏P✒❘●❚✗❙✡❚✁◆✒❖❴P✒◗❵❙✡◗✍❚❜❛✍❬❭❙✡❝❏❪❏P✒❞❢❡✍❘●❘●❚✗❣✡❤✍✐❊P✒❘wrt_adress()
❥✒❦❫❧✞♠♦♥✡♣●♣q♥✡r✍♠❜s✍t❭♥❅✉✄✈✒r☞♣●♠✁✈①✇❊✇✞♠✁②for (i = 0; i < 3; i++) wrt_adress();
3
③✜④✣⑤✤④✣⑥✧⑦★⑤✧⑦✘⑧✫⑨✗⑩✫④✗❶✯❷✱❸✗❹✞⑤✤⑦✳⑩✣⑧✣❺ ⑨✗⑩✵⑩✶⑦★❻✯❺✘❼ ❽✜❶✘❾✱❻✞❿✗❻✍⑦✳⑧✶⑤✵❼ ➀void nothing(void) { } /* does nothing */ double twice(double x) { return (2.0 * x); } int all_add(int a, int b) { int c; ..... return (a + b + c); }
➁✜➂✣➃✤➂✣➄✧➅★➃✧➅✘➆✫➇✗➈✫➂✗➉✯➊✱➋✗➌✞➃✤➅✳➈✣➆✣➍ ➇✗➈✵➈✶➅★➎✯➍✘➏ ➐✜➉✘➑✱➎✞➒✗➎✍➅✳➆✶➃✵➏ ➓ ➔✿→✒➣✡↔✁↕ ➣✡➙❫➛ ➜❊↔❏↕✄➜✒➝☞➞✍➟✍➝✞➠✞➡●↕✑➢✞➝☞➤✍↔➦➥ ➧✞➨❭➩❫➥ ➩①➫❇➭✞➯❏➲✄➳✒➵✔➫❇➸✍➵✞➺✞➻✁➼ ➽✞➵✍➳✒➵✞➾ ➚ ➵✞➲✄➯✁➼ ➵✞➪✠➶✡➯♦➶✡➹❏➲✄➳①➹★➶❫➯❜➼ ➶✡➘✄➴ ➳✒➯✁➵✠➶➷➺❊➽✞➬❏➬✆➳✒➯➦➮ ➱❴✃✣❐❮❒✡❰●❰✆Ï❊Ð❇Ñ❜Ò✒Ó✁Ô❭❒☞❒❫Õ✞Ö✄Ó✗❒ Ñ★❒❫Ó✁× ❒✡Ø✄Ù Ò✒Ó❏Ú✍❰✣❒✡Õ✞Û❇Ü✞Ó❏Û❇Ú✍Õ✞Ô❊❰●× Ý✞Õ✞Ò❊Õ✔Þ❜Ý✞ßáà✁❒✡Ó❏Þ✗❒✡ß❏ßq❒❅Õ✠❒❫ß❏Õ✞â ã✿äåÕ✔Ñ✗❒✡Ó✁× ❒❫Ø❫Ò✒Ù✵Ô✠❒✡Õ✔Ý✞æ❇Ô❊Þ❜ÐçÖ✄Ò✒Ô❊Ù ❒✡Ó✁Ò✒Ó✗❒❫Þ❳Ú✍❰✣❒✡Õ✞Û❇Ü✞Ó❏Ò✒Õ☞Û✍Ú✍Õ✍Ô❊❰●×✑Ý✞Õ✍Þ❜Ô❊Ó✁Ý✞Ï✞Ï Ý✞æ❇àèØ❫Ù × Ó❏Ö✄Ð♦é❁ê ë✠ì✄í✡ê î✄ï❳ð✞ñ✁ò♦ó✡ô õ✆ö❇ñ❏÷❊ô ð✍ø❇ó❫ô ó❅ù★ó❫ñ❜ú ó✡ø✄ô û✒ñ❏ú ü✞õ●ûýó✡õ●õ ñ✁û✒þ❊ð✍ò❏ò❏û❊ü✞ÿ✄û✒ñ✗ó✁#include <stdio.h> int a = 33; int main(void) { int b = 77; printf(”%d\n”, a + b); }
4
✂☎✄✝✆✞✄✝✟✡✠☛✆✡✠✌☞✎✍✑✏✎✄✑✒✔✓✖✕✑✗✘✆✞✠✙✏✝☞✝✚ ✍✑✏✛✏✜✠☛✢✔✚✌✣ ✤☎✒✌✥✖✢✘✦✑✢✧✠✙☞✜✆✛✣ ★ ✩✫✪✭✬✯✮✱✰✧✪✭✲✴✳☛✵✶✮✱✳✷✬✯✲✴✸✹✵✁✲✴✺✭✵✻✬✼✮✱✮✽✰✘✮✱✮✱✪✑✾✁✿✧✸❀✬✼❁ ❁ ✬✯✪❃❂☛✵✁✪✑✵❄✰✘✮✝✵✶✲✘❅ ❆❈❇☎❉☛❊✑❆☛❋✎●✼❍☎❉✝■✱❉✑❇✜❏✷❇✑❋✭❉ ::= return; | return ❑✑▲✜▼❖◆❈❑✌P✙P✙◗✙❘✑❙❖❚return; return ++a; return (a * b);
❯✫❱❳❲✭❲✱❨✑❩✁❬✧❭✘❪✯❲✽❫✷❴✘❵❛❨✭❪✯❲✱❜✧❨✷❝✧❪✯❨✑❞✁❫❡❭✹❞✁❝✴❴✘❵✽❢✘❪✯❫❣❞✁❤❃✐❈❞✁❨✭❪✯❝✧❲✱❪✯❫✷❪✯❨✭❥✛❵✽❪✯❝ ❦ ❪✯❲✱❲✝❞✻❭✘❨✭❧✧❤✷❫❃❪☎♠❖♥ ❯✫♦♣❧❖❨❃❪✯❝return
q☛r✶s✱q❡t✼✉✧s✱✈✭✇❖①✧①✌r✶q❡q✷✉②r✁③✷④⑤✈✑⑥⑦s✱q❃⑧✯⑨⑤⑧✯⑩✼③✭⑧✯✈✭❶❸❷✧❹✼⑧✼❷ ❺ ⑩✼❻✧✈✭❷✘❶❸❷✧❹✼⑧✼❷✘❼✛r✁③❃①❖❽✘❷✧⑩✼s✱❶❸❾✧❷✘⑧✯❷✴❾✧❿✧➀➁⑩✼❾✘❷✧s✱✈✷❾✧➂ ➂ ⑧✯❷✴❹✘⑧✯q❃✉✧s✱⑧✯✈❃s✱❶❸➂ ➂✛➃⑤⑧✯❷ r✁❷✧✈✷❾✧t❈r✁❷✘➃✛⑧➅➄❃❶ ➂ ➆❖❻✘❷✘➇✼➈♣➄return
➉✑➊✁➋✱➉✷➌✼➍✴➎❸➍✧➍✘➌✯➏✛➐✧➑ ➑ ➌✯➒❃➌✯➋✱➋✽➓✘➋✱➋✱➒✑➔✁→✧➣✘↔ ➉✷➐♣➉✷➣✼➎ →✧➣❈➊✶➉❡↕✷➙❖➒✭➛⑤➌✯➋➜➊✁↕❡➓✧➋✱➋✱➒✑➔✁→✧➣✼➌✯➋✽➝✖➌✯➞❖➋✱➌✯➒❃➌✯↕✷➌✯➍✧➋✱➓✘➌✯➑ ➑✛➣✼➟✘➍✘↕✭➌✯➒✭➋✱➌✯➒✭➎❸➍✧➠✼➡ ➋✱➎ ➑ ➑ ➢❖➊✁➣✘➉❡➋✱➎ ➑ ➑✛➛⑤➌✯➍❳➊✶➍✘➒✭➟✘➤❈➊✁➍✧➛⑤➌➅➥❃➎ ➑ ➦❖➧✘➍✧➨ ➩☎➫✝➭✞➫✝➯✡➲☛➭✡➲✌➳✎➵✑➸✎➫✑➺✔➻✖➼✑➽✘➭✞➲✙➸✝➳✝➾ ➵✑➸✛➸✜➲☛➚✔➾✌➪ ➶☎➺✌➹✖➚✘➘✑➚✧➲✙➳✜➭✛➪ ➴ ➷✫➬⑦➮✴➱❖✃✧➮✘❐✼❒✱❮ ❰✘➮✴Ï⑤Ð✘Ñ❃Ò⑤Ó✯❐✼Ô Õ✶Ñ✭Ó✯Ñ✑Õ✁Ö❡❮ ➮✘➮✹Õ✶➮✴Ò⑤Ó✯➮❳Õ✶➮✘×✷Ø❖➮✘Ò⑤Ö✷Ù✼Ú❳Û♣Ü❣Ý❀Þ ❒✱❮ Ô Ô ß✭Õ✁➮✘Ò✷Õ✶ß✛à✧Ô Ô Ó✯Ñ❃Ó✯➮áÒ⑤Ó✯❐✼Ô Õ✁Ñ✑Õ✶❒✱❮❸❰✘➮✧Ö✷Ö☛â✁➮✘❒✝Õ✶ãäÖ✷❰✘å❛❐❈Õ✁Ô Ô Õ✶Ö➅æ❖ç✙è⑦éëê✝ì í✹è✘î✛ï ðëñ í⑦ê✝í✁ê❸ò ð➜ó ô✫õ⑦ö✴÷❖ø✧ö✘ù✼ú✱û ü✘ö✘ý✭þ✼ÿ✭ü✘ú✱ü✘ú✁✁þ✄✂✆☎✯ÿ✞✝✧ú✱ú✁✟✁ÿ❃÷✡✠✘ÿ❃ù✼ü☞☛✽þ✼û ✌ ✟✁ú✱ü✘ÿ✭ö✍✟✶ö✘ú✁✟✎✌ ☎✯ú ✟✁ÿ✞✏✘ø✑☛✒☎✯ö✧ú❃ü✑✓✑✔✒✟✎✕✒✕✷û ✌ ù✖☎✯ö✴ú✁✁þ✗✟✶ÿ✞✏✼ø✑☛✘☎✯ö✘ú✙☎✯ö✚✝❖ÿ ó✖✛ ☎✯ö✚✂✆☎✯ÿ✞✝✧ú✱ú✁✟✁ÿ ✜ ☎✯ý✭ý✷ø✧ú✱ü☞☛✢✕✭û✣✌ ù☞☎✯ö✴ú✁✁þ✗✟✎✕✒✕✤✝✧ÿ ✜ ☎✦✥✖ü☞☛ ö✑✧✑✏✘ü✘ú✙★➜ý✷ü✑☛ ÷❖ø✧ö✘ù✼ú✱û ü✘ö☞☎✯ö ÿ✞☎✯ú✱ø✧ÿ✭ö☞☎✯ÿ✩✟✁ÿ ódouble sqrt(double);
✪✬✫✮✭✰✯✙✯✁✱✳✲✆✭✰✴✞✵✑✯✙✯✁✱✶✴✸✷✡✹☞✴✒✺☞✻☞✼✒✽✖✾ ✿ ✱✎✯✙✻✑✴✞❀✍✱✎✯✙✯ sqrt() ❁✑❂✒❃✰❄❆❅✑❇✑❄☞❈☞❉✙❊✣❋☞❄- ❋✑❍✢❉✁■✎❂✒❃✰❉✙❉✘❃✰❄✑❏✤■❆■✎❂✞❑☞❇✑❍✒❃✰❄✑❉▲■✶▼✸❉✁◆✎❖✖❃✰❄ double
double
❩5
❬❪❭✁❫❴❭✁❵❜❛❝❫❜❛❡❞❣❢✩❤❣❭✩✐❦❥♠❧✩♥☞❫❴❛♦❤✁❞✁♣ ❢✩❤q❤r❛❝s❦♣❡t ✉❪✐❡✈♠s☞✇✩s✑❛♦❞r❫qt ①void f(char c, int i);
②✩③⑤④r⑥❝⑦✖⑦☞⑥⑧④r⑥✩⑨▲④❣⑩✩⑦void f(char, int);
❶✬❷✖❸✆❹✰❺☞❻✙❼ ❽✑❼ ❹✰❾✩❿✎❾✞❺♦❿c
➀☞➁✑➂ i ➃✎➄☞➅✤➆✡➄☞➇✆➈✸➉ ➄☞➊✙➋➌➃✶➅✸➍✖➎☞➏✘➐✖➉ ➑ ➃✎➊✙➎☞➒✞➄☞➓✖➔✮➋✰➒✩➃✎➈ ➋✰➄☞➇✤➃→➈❝➣✎↔✡➊✙➋✦➆✑➒▲➃✎➊✙➊✘↕☞➋✦➇✆➎☞➍☞➙☞➏✘➋✰➄☞➊✁➃✎➊✙➉ ➎☞➄✚➊✙➉ ➑ ➑q➐✖➒✞➎✑↕✖➒✩➃✎➏✘➏✒➋✰➒✩➃✶➒✞➋✰➄☞➓ ➛✬➜ ➙✑➄✑➍✖➊✙➉✣➎☞➄✑➈✤➐✖➒✞➎☞➊✙➎✑➊✁➣➝➐☞➋✰➒✒➑ ➞✑➊✙➋✰➒✒➍✖➎✑➏✒➐✖➉ ➑ ➃✎➊✙➎☞➒✞➄✚➍☞➎☞➄☞➊✙➒✞➎☞➑ ➑ ➋✖➒❝➃→➍✖➆✑➑ ➑ ➍☞➎☞➇✆➋✰➄ ➟ ➆✑➊✙➊✙➒✞➋✦➎☞➠✑➡❚➑ ➆✡➊✙➊✁➃✎➒✞➋✦➡q➉ ➊✙➊✁➃✳↔✡➋✰➑ ➓✰➔✮➋✰➈✞➈✤➙✑➊✙➎☞➏➢➍✖➎☞➏✒➏✘➋✰➒✒➅✤➆✡➒✤➇q➋✰➄✚➊✙➉✣➑ ➑ ↔✡➙✑➄☞➍✖➊✙➉ ➎☞➄☞➋✰➒▲➃✎➊✙➊ ➟ ➑ ➉✆➍☞➎☞➒✞➒✞➋✰➍✖➊✘➎☞➏✘➅❝➃✎➄✑➇✆➑ ➃✎➇✆➋✰➓ ➛✬➤ ➓ ➋✖➥✆➓✰➎☞➏✢↔✡➙✑➄☞➍☞➊✞➉ ➎☞➄✑➋✰➄sqrt()
➦✞➧✎➨✒➩✆➫✰➭✡➯ ➲☞➫✰➨✩➧✎➳✙➵✞➸q➵✤➺➼➻✖➽☞➾✒➾✘➫✰➨✒➫✰➳✙➳ ➧✎➲✑➨✤➽✑➚sqrt(4)
➪✎➶✙➶✘➹✡➘✑➴☞➷☞➬✰➮✩➪✎➱✰✃✎❐☞❒✘❮✖❰ Ï ➪✎➶✙❐☞➮✞➴✚Ð☞❐☞❒✒❒✘➬✰➮▲➪✎➶✙➶ ❐☞❒✘Ñ❝➪✎➴✑Ò✆Ï ➪✳Ó✳➶✙❰✣Ï ÏqÓ✎➱ Ô✳Õ double Ö ×❪Ø✁Ù❴Ø✁Ú❜Û❝Ù❜Û❡Ü❣Ý✩Þ❣Ø✩ß❦à♠á✩â☞Ù❴Û♦Þ✁Ü✁ã Ý✩ÞqÞrÛ❝ä❦ã❡å æ❪ß❡ç♠ä☞è✩ä✑Û♦ÜrÙqå å æ é✬ê➼ë➢ì✰í✙í✘î✡ï☞ð✑ñ✖í✙ò✣ó✑ð☞ô❝õ✶ð☞ö✞ó☞÷f(x)
ø✖ù✡ú✙û✞ü✑ý✡ý♦þ✶ÿ✁ ✂✄✂ þ☎✂✆✂☞ù✞✝✄✟✄✂ ✠☛✡✌☞✎✍ þ✎û✩þ✎ú✏ ✟✄✂ ✡✌✍ ✍ ✡ û✸ø☞û✑✟☞ú✏✟☞ú✓✒✎ø✔✝✖✕✗✟☞û✞ú✙ÿ✙✘qÿ✞ù❆ý✗✚☞û✑✛✑ú✙ÿ✤ü✑ú✙ú ✡ û ☞ ✟✄✜✒ø✎ ✍ þ✎ú✏✟✑û✙✂ ✡ ✂✚ÿ✞ú✁þ☎✂ ✠ þ✶û ✠✢✠☛✡✌☞✎✍ þ✎û✩þ✶ú✏✣✟✄✂✮þ☎✤✸ý✗✟☞û✑✜ ✡ ✂int f();
✥✧✦✎★✄✩✄✪✌✫✭✬✗✮✄✯✑✰✞✫✑✱✑✲✞✫✏✫✏✱✁✳✞✴✶✵✸✷✹✯✺✷✹✴✻✪✌✫✏✪✌✯✑✼ ✽ ✱✙✫✓✷✹★✾✫✏✽✣✼ ✼✿✬✞✰✞★✄❀✄✫✏✽✣✳✄★✞✪✌★✄❁ ✥✧❂☎✰✞★✞❀✎✫✏✽✣✳✄★✞✱✙❃☛✪✌✬✗✽ ★✄✽ ✫✑✽ ✳✄★✞✪✌✯✻✳✄❄✞❅❆✵✎✯✑✳✞✫✏✳✄✫✓❇☎✵✎✪✌✯✻❅✑✷☎✯✻❈✙✽ ✱✙✱❉✷ ❊ ✪✌✩✎✯✑✲✗★✄✱✙★✞✽✣★✄✩✖✷☎✯✑❁✌❋✸✷☎✩✄✯✑✽✣★✄✩✄✱✙❀✄✼ ✷☎✱✙✱✑✪✌★✾❀✸✷✹★✾❈✺✷✹✯❉✷●✪✌★✄❃☛✪✌✯❉✷extern
❍✌■ ■ ❍✌❏static
❑✻▲✎▼✾◆✣▼✞❖✏▲◗P✹❘✗❙✙❚☎❯ ❱✧❲ ❑❳◆✣▼✞❨✎▲✌❖❩❚✹▼✄❨✄▲✌❬✙❭❪❬✑❘✆❫✞❴✻❵ ❚✹❨✎❴✑◆ ▼✄❨✄❬✙❛✎❵ ❚✹❬✙❬✙▲✎▼extern
❜✧❝☛❞☎❡✎❢✌❣✑❤❥✐●❦❧✐☎❣✑❣❉✐✞❞●♠✄♥♣♦ ♦ ♦ ❦q♠✄r✗s❆❦✺♥✗t✄❤✞r✞✉✏✈✣♠✞❤✾❣✑❢✌✉✏t✞❣✑❤✄✈✣❤✞✇✔♦ ♦ ♦ ❦q①✸✐✹❤✾❢③② ❣✑❢✌✉✏t✞❣✑❤✄❢✌❣❉✐☎④⑤✐☎⑥✁❢✎❤✾♥✗t✄❤✞①✎✉✏✈✣♠✞❤✄♦✌⑦⑨⑧✞❣✑❢✌⑩✭♠✄✉✭①✸✐✹❤✾❢✌❤✾❡✎❢✎①✸✐☎❣✑❢◗✉✏✈ ❶ ❶❪❢✌❤ ✐☎❣✑❣❉✐✞❞●❢✌❶ ❶ ❢✌❣✻❢✌❤✾♥✗t✞❤✄①✎✉✏✈ ♠✄❤✾❣✑❢✌✉✏t✞❣✑❤✄❢✌❣❉✐☎④✑♦6
❷③❸✓❹❺❸✓❻❽❼✺❹❽❼❿❾➁➀❉➂➁❸❉➃✿➄➆➅❉➇✄❹❺❼❥➂✓❾✓➈ ➀❉➂❪➂➉❼✺➊✿➈❿➋ ➌③➃❿➍➆➊✄➎❉➊✞❼❥❾➉❹❪➋ ➋❺➋ ➏✧➐➒➑✄➓✓➔✹→➣➔✹➓✏➓✻↔✑↕☛↔✑↕✣➙ ➙✿➛✙➜✎➝✑↕ ↔✺➔●➞✌➓✏➓✭➛✑➓✏➟✄➝✑➓✭➠✎➝✑➟✄→✄➝❉➔☎➡✶↕❪➞✌➑✾➞✎➑✄➢✙➔ ➜✎➤✗➙ ➙ ➜✎➟✄➢☛➛✑➥✞↕ ➙ ➦✌➧✁➟✄➝✑➡⑤➔☎➙ ➓✭➛✑➨✆➙ ➤✞→✄→✄➞✌➝✻↔✙↕❪➞✌➑#include
➩❪➫☛➭✄➯❉➲❿➳☎➵➒➳✹➸ ➺ ➩✣➻ ➼✎➵✾➽☛➾✞➯✻➸✑➩☛➚✑➳☎➯✻➸✑➪✞➯❉➳ ➺✗➶ ➵✄➹✎➘✏➩ ➴✄➵✄➷✑➬✎➯✑➴✄➘✏➴✄➘✓➮☎➬✎➼✌➯✑➱ ✃✧❐ ➘✏➘❩➳☎➻ ➘✏➼✌➯✑➵✖➳✹➘✏➩✣➸✑➘✭➷✙➾✞➘✏➘❩➳☎➘✏➘✭➻ ➾✗❒✎❒✖➳ ➺✗➶ ➵✄➹✎➘✏➩ ➴✄➵✄➷✑➽☛➼✌➹✎➻ ➳✹➯❉➳☎➘✏➩✣➴✞➵✄➼✌➯✑➵✖➳ ➭✄➸✑➼✌➯✑➷✙➘✭➩ ➺ ➩ ➻ ➼✌➵✾➩ ➵✄➵❥➳☎➵ ➺✗➶ ➵✄➹✎➘✏➩ ➴✄➵✄➼✌➵⑨➳☎➵✄➯✑➴✄➬✸➳✹➷✙➱ main() ❮❥❰✗Ï✞Ð✄Ñ✄Ò✑Ó Ô✄Ð✞Õ✌Ð Ö ×✞Ø✄Ø✄Ù✁Ù Ó Ù Ò⑤Ú✹ÛqÚ Ö Ö Ú☎Ü Ý✧Þ Õ✌Ò✏Ò✓Ú●❰✗Ï✞Ð Ø Õ✌ß❉Ú☎ß✻Õ✌❰✗Ò✏Õ✌ß Ù Ô✄àáÚ✹Ò✏Ò✭Õ✌Ð✾❰✗Ï✞Ð✄Ñ✎Ò✏Ó✣Ô✞Ð Ù✙â Õ✎Ñ Ö Ú☎ß❉Ú☎Ò✏Ó Ô✄Ð✾Ô✞ã✞Ñ Ù✑ä ❰✗Ï✞Ð Ø Õ✌ß❉Ú☎ß Ù Ô✄à❳Õ✌Ð✾❰✗Ï✞Ð✄Ñ✎Ò✏Ó Ô✄Ð Ù✑å ß✑Ô✄Ò✏Ô✄Ò✓æ å Ü Ý✧Þ Õ✌Ò × ßqÚ✹Ò✏Ò✭❰✞ç✞ß✑Õ â ß❉Ú✆Ú☎Ò✏Ò❩Ú☎Ð✞Û × Ð â Ú â Õ✌Ò✭Ò✏ß❉Ú â Ó Ò✏Ó✣Ô✞Ð✄Õ Ö Ö Ú Ù✙× Ò✏Ò✏Õ✌Ò✭à✭Õ â ❰✗Ï✞Ð✄Ñ✎Ò✏Ó Ô✄Ð Ù✙å ß✑Ô✄Ò✏Ô✄Ò✓æ å Õ✌ß✑è main() é✗ê✄ë✑ì✙í✭î✞ï✞ð❆ì✙ñ✎ò✙ó☎ô é✗õ✞ô✄ö✎í✏÷ î✄ô✄ì✙ò☛ñ✎ö✎ø ó☎ë❉ó☎í✏÷ î✄ô✄ñ✎ë✑ù ú③û✓ü❺û✓ý❽þ✺ü❽þ❿ÿ✁✄✂➁û✄☎✝✆✟✞✄✠✄ü❺þ✡✂✓ÿ☞☛ ✄✂✌✂➉þ✎✍✝☛✑✏ ✒✓☎✑✔✟✍✖✕✄✍✞þ❥ÿ➉ü✌✏ ✏✘✗#include <stdio.h> #define N 7 void prn_heading(void) { .... } void power(int m, int n) { .... } int main(void) { prn_heading(); printf(”%d\n”, power(7,3)); }
7
✙✓✚☞✛✘✚☞✜✣✢✎✛✣✢✑✤✁✥✄✦✁✚✄✧✝★✟✩✄✪✖✛✘✢✡✦☞✤☞✫ ✥✄✦✌✦✬✢✎✭✝✫✑✮ ✯✓✧✑✰✟✭✖✱✄✭✲✢✡✤✬✛✌✮ ✮✴✳ ✵✷✶✲✸✺✹✖✻✖✸✄✼✾✽✿✽❁❀❃❂❁❄❆❅✲✸✎❇✎✼✾✸❈✼✾❉ ❉ ❂❋❊- ❍✽✿❀❃●❍❀■❂❋❂❏✼✾❑✖✸✺✹✖▲▼❂❋❊
#include <stdio.h> int compute_sum(int n); int main(void) { int n = 3, sum; printf(”%d\n”, n); sum = compute_sum(n); printf(”%d\n”, n); printf(”%d\n”, sum); } /* forts. nästa slide */
8
❒✓❮☞❰✘❮☞Ï✣Ð✎❰✣Ð✑Ñ✁Ò✄Ó✁❮✄Ô✝Õ✟Ö✄×✖❰✘Ð✡Ó☞Ñ☞Ø Ò✄Ó✌Ó✬Ð✎Ù✝Ø✑Ú Û✓Ô✑Ü✟Ù✖Ý✄Ù✲Ð✡Ñ✬❰✌Ú Ú✴Þ/* forts. från förra slide */ int compute_sum(int n) { int sum = 0; for (; n > 0; --n) sum += n; return sum; }
ß✓à☞á✘à☞â✣ã✎á✣ã✑ä✁å✄æ✁à✄ç✝è✟é✄ê✖á✘ã✡æ☞ä☞ë å✄æ✌æ✬ã✎ì✝ë✑í î✓ç✑ï✟ì✖ð✄ì✲ã✡ä✬á✌í í♠ñ ò✷ó✾ô✲õ✲ö■÷❋ø♠ù✖õ✲ú✎û✾õ✲ü✺ù✖ý▼ø õ✖õ✖þ❃ÿ✁✲ü✄✂ ☎✝✆ û✾ü✟✞❲þ➑ô✲÷❋÷❋ü✟✠☛✡✲ö▼ø✺û✾ü✄☞✖ô✍✌❁þ❃õ✖÷✏✎ ø ú✐÷☞û✾õ①ô✲÷✄✑✄✲ü✄✒❡þ❃ü✄û✾ú ☎✝✆ ✲ü✄✒❡þ❃÷❁ý✔✓ ô✖÷❋÷❋ü✟✠☛✡✲ö✖þ❃÷❁ö■ù✖õ✍✑✺þ❃ü✺÷❋þ❃ü✄û✾ú✖✕✝ù✍✌ õ✍✗✘✒✁✑✖✲õ✘✒❡ø✙☞✖÷✏✕✌÷❋ø ✎ ✎ ÷✚✠✾ý■þ❃õ❣ý✍✓✛✒❡þ❃õ✢✜❲ù✖ü✄✌❁þ✣✎ ✎ û❧ýsû✾ü✄û☛✌✿þ■÷❋þ❃ü✺õ❣ù✍✡✘✤✥✒❡þ❃÷✦✑✖✲ü✄✒❡þ❃÷✦☞✖þ❃ú✿÷❋ø✙✎ ✎ ✒❡þ❃õ✢✜❲ù✲ü✖✌❁þ✣✎ ✎ û❧ýsû✾ü✄û☛✌❁þ❃÷❋þ❃ü✺õ❣ø✌ÿ✧✗✖ü✟✞✑û❆õ❪û☛✑★✜✲ô✲õ✲ö■÷❋ø♠ù✖õ✲ú✐ö■ü✺ù✖ý✖ý■þ❃õ✍✩ ☎ ó✾ô✲õ✲ö■÷❋ø♠ù✖õ✲ú✐ö■ü✺ù✖ý✖ý■þ❃õ❣þ✣✪✌þ❃ö✔✑✐þ❃ü✄û❆ú✬✫☞ö✍✗✖ü✺ú✖✭✚✩ ☎✝✮ ✌♣þ❃õreturn
✯✱✰✟✲☛✳✏✰✬✴✍✵✘✳✏✶✄✷✘✸✹✸✺✲☛✰✖✻✼✰✄✵✛✽✍✾✣✰✬✿✍❀✍❁✍✳✏✶✄❀✍❂ ❂ ✾✣❁✛✳✏❃✙❂ ❂ ❄✖✲☛✿❅✲ ✳✏❃ ❂ ❂✼❆✁✾✣❁❇✲☛❁✘✶✄❀✍✴❅✲☛❁✘❆✁✾❉❈★❃ ❂ ❊✹❋✍❁- ✝❍
return
■✱❏▲❑✧▼✏❏✖◆✣❖✢P ❖✍❖✍◆✔◗✼❘✘❙ ❙ ◆✣❚★◆✣▼✏▼✦❯✘▼✏▼✏❚✟❱☛❲✘❳✔❨✼❯✘▼✏❩✖❬✹❚✖❭✁◆✔❚✟❑☛❏ ❯✘▼✏▼✏❚✟❱❪❲✹❳✔◆✣▼✦❫✍❲✘◗✥❳✔❫✍❖✍❩✄◆✣❚✄▼✏◆✣❚✟❑☛❏✖❨❴❫✍❵❛❖✍❜✘❭✁❩✖❬✘❖✘❭✁P✙❝✍▼✏❨✼▼✏P ❙ ❙✼❚✄◆✣▼✏❯✍❚✄▼✚❱☛❞✔◆✣❖ ❫✍❲✹◗❡❭✁◆✣▼✦❩✖❬✘❚✄❭✁◆✔▼✦❏✖❳✔P ❲✘❳❅❑☛❏★▼✏P✙❙ ❙❴❭✁◆✣❖❇❑☛❖✘❚✖❫✘❞❅❑☛❖✍❭✼◆❉❵★P ❙ ❢✹❜✍❖✍❣ ❤✝✐ ❵❥◆✣❖return
❦✱❧✟♠☛♥✏❧✬♦ ♣✍♥✏q❉♦ ♣✍♣✍q✣r❴s✘t t q✣✉★q✣♥✏♥✦✈✘♥✏♥✏✉✟✇❪①✹②✔③✼❧✖②✍♦✙①✹②❅♠☛❧ ♦ ♣✍④✍q✣♥⑤♠☛♣✍⑥✄⑦✘♣✍⑧✁⑨✖♠☛✉✄♥✦⑥✖⑦✹✉✖⑧✁q⑩♥✏♦✙t t ⑨✖♠☛②❅♠❶♥✏♦✙t t✼⑧✁q✔♣❇♠☛♣✍✉✄❷✍❸❹♠☛♣✍⑧✁q❉❺✦♦✙t ❻✹❼✍♣✍❽9
❾➀❿✚➁➂❿✚➃➅➄▲➁➅➄✺➆➈➇✟➉➈❿✟➊❴➋➍➌✟➎✍➁➂➄✱➉✚➆✚➏ ➇✟➉✼➉➐➄▲➑❴➏✺➒ ➓➀➊✺➔➍➑✍→✟➑✘➄✱➆➐➁✼➒ ➒ ➣ ↔➙↕☛➛✘➜✘➝✔➞✏➟✙➠✍➜✘➡▲➢☛➜✘➤✄➠✍➥⑩➟ ➜✍➜✍➦✣➧✁➨✘➤✄➩✧➫✚➭✹➠✍➤✄➞✏➡✄➯ ➲ ➳✝➵➺➸ ➟✙➜✘➻✔➦✣➜ return ➼✱➽▲➾✧➚✄➽★➪✔➶✘➚✏➹✄➘✘➴✹➴✺➾☛➽✄➷✼➬✍➮✣➽✬➱✔✃✘❐✍➚✏➹✄✃✍❒ ❒ ➮✣❐✛➚✏❮✙❒ ❒ ❰✖➾☛➱❅➾ ➚✏❮ ❒ ❒✼Ï✁➮✣❐❇➾☛❐✘➹✄✃✍➪❅➾☛❐✘Ï✁➮❉Ð★❮ ❒ Ñ✹Ò✍❐✛❐✍➘✘➹★➽✖❒ Ó✘➚✏➮✣➚✦➪✔➶➺➴✹Ó✍❐✘➱✔➚✏❮✙✃✘❐✍➽✖➱✔➹✄✃✘➪✔➪✔➮✣❐ ➪✔➶✹➚✄➹✄➘✹➴✘➴✺➾✧➽✖Ô✣Õ✔❐✍➬✍➮✣➚⑤➾☛❐✍Ö✄➘✘❐✍Ï✁❰✖➾☛➹✄➚✦Ö✖➘✹➹✄Ï✁➮❉➹✄➮✣➚✏Ó✘➹✄❐✍➮✣➹✟➾☛➽✄Ô ×✝Ø ❒ ❒ ➾➺➾☛➹✄➬✔Ó✘Ð✦➮✣❐✍➚✦➽✖➱✍❮✙Ù✘➱❹➾☛➽✬Ú✟Ù✱➾☛❒ ❒ ➼✱❰✖Û☛➼✱Ö▲➾☛❒ Ó✍➮✔Ú Ü➀Ý✚Þ➂Ý✚ß➅à▲Þ➅à✺á➈â✟ã➈Ý✟ä❴å➍æ✟ç✍Þ➂à✱ã✚á✚è â✟ã✼ã➐à▲é❴è✺ê ë➀ä✺ì➍é✍í✟é✘à✱á➐Þ✼ê ê✙î ï➙ð➺ñ✘ò✖ó⑤ô☛õ ö✦÷✄ø✔ò✄ù✙ú✄÷✬û✣ö✏ö✦÷✖ö✏ñ✘ò✄ö✦ü✔ò✄ñ✍ý✍ò▲ô✧ó❛ù✼û✣ö✏ö✦÷✖û✣ü❹ô☛ò✟ô☛ö✦þ✁ù✙þ✁õ ù✙ñ✘ö✄û✔ø⑩÷✖ñ✍ó û✣ÿ✢÷✟ô☛ó✦õ ù✙ÿ✍ý✁ ✂ ñ☎✄ ✂- ✄✝✆✘ù
#include ”pgm.h”
✲✘✳✝✴✑✵✚✶✰✵✟✷✖✶✰✵✟✸✙✹☎✷✰✺✢✺✢✸☎✵✟✻✁✶✰✼☎✽✾✵✟✴☎✿✑✿❁❀★✵✚❂☞✷✖✽✾✽❃❀❄❂☞❅✣✵✟✷✖❆✙✽✟❅ ❇✢❈❉✺✢❊✙❆✰✷✰✵❋❂☞✷✰✻✁✿✑❊✙✵✟✺✢✽ ❅✡❂☞✷✖✽●❀★❆✰✽✾❍☎✷✖■ ■ ❀❄❏✱❅ ❏✱■ ❅ ✸✙✽✾✷✖❆✰✷✰✽✛✷✖✿✑✽✟✷✰✵✚✿☎❅ ■ ✷✖✻✁❑✍✶✰▲✙▼✚◆ ❖✡❑✮◆✰P✝▼◗❂☞✷✰✻✁✿✑❅✣✻✙✻☎✺✢❈ ✺✢✼✝■ ✴☎▲✙▲✙✺❋❂☞✷✖✻✁❅ ✻✁❂☞✴✑✵ #include ❘✙❙☎❚✾❯✟❱☎❲✑❲❁❳★❨☞❩✖❬✟❭✖❪✝❫✭❨☞❩✖❴✁❵ ❴✙❚✾❩ ❲✑❵✣❴☎❴✙❬✢❛✡❬✟❜✙❝✰❩✖❯✚❘✰❯✟❩✰❘✰❯✟❞✙❡☎❩✖❬✟❬✢❞✙❯✟❴❢❵☞❬✮❣★❬✟❚✾❩✖❫✚❤✒✐☞❵✣✐☞❥ ❵ ❞✙❚✾❩✖❝✰❩✖❴☎❭10
❦♠❧❃♥♦❧❃♣rq✮♥rq❁s✉t✍✈✉❧✍✇❉①③②✍④✙♥♦q✒✈❃s❃⑤ t✍✈✡✈⑥q✮⑦❉⑤❁⑧ ⑨♠✇❁⑩③⑦✙❶✍⑦☎q✒s⑥♥✡⑧ ⑧✣❷#include <stdio.h> #include <stdlib.h> #define N 3 /* funktionsprototyper */ void fct1(int k); void fct2(void); void wrt_info(char *);
❸♠❹❃❺♦❹❃❻r❼✮❺r❼❁❽✉❾✍❿✉❹✍➀❉➁③➂✍➃✙❺♦❼✒❿❃❽❃➄ ❾✍❿✡❿⑥❼✮➅❉➄❁➆ ➇♠➀❁➈③➅✙➉✍➅☎❼✒❽⑥❺✡➆ ➊❃➇#include ”pgm.h” int main(void) { char ans; int i, n = N; printf(”%s”, ”This program does not do very much.\n” ”Do you want more information? ”); scanf(”%c”, &ans); if (ans == ’y’ || ans == ’Y’) wrt_info(”pgm”); for (i=0; i < n; ++i) fct1(i); printf(”Bye!\n”); return 0; }
11
➋♠➌❃➍♦➌❃➎r➏✮➍r➏❁➐✉➑✍➒✉➌✍➓❉➔③→✍➣✙➍♦➏✒➒❃➐❃↔ ➑✍➒✡➒⑥➏✮↕❉↔❁➙ ➛♠➓❁➜③↕✙➝✍↕☎➏✒➐⑥➍✡➙ ➞✒➙#include ”pgm.h” void fct1(int n) { int i; printf(”Hello from fct1()\n”); for (i=0; i < n; ++i) fct2(); } void fct2(void) { printf(”Hello from fct2()\n”); }
➟♠➠❃➡♦➠❃➢r➤✮➡r➤❁➥✉➦✍➧✉➠✍➨❉➩③➫✍➭✙➡♦➤✒➧❃➥❃➯ ➦✍➧✡➧⑥➤✮➲❉➯❁➳ ➵♠➨❁➸③➲✙➺✍➲☎➤✒➥⑥➡✡➳ ➻✒➻#include ”pgm.h” void mrt_info(char *pgm_name) { printf(”Usage: %s\n\n”, pgm_name); printf(”%s\n”, ”This program illustrates how one can write a program\n” ”in more than one file. In this example, we have a\n” ”single .h file that gets included at the top of our\n” ”three .c files. Thus, the .h file acts as the \”glue\”\n” ”that binds the program together.\n\n” ”Note that the functions fct1() and fct2() when called\n” ”first says \”hello\”. When writing a serious program, the\n” ”programmer sometimes does this in a first working version\n” ”the code.\n”); } /* } on this line to save space only! */
12
➼♠➽❃➾♦➽❃➚r➪✮➾r➪❁➶✉➹✍➘✉➽✍➴❉➷③➬✍➮✙➾♦➪✒➘❃➶❃➱ ➹✍➘✡➘⑥➪✮✃❉➱❁❐ ❒♠➴❁❮③✃✙❰✍✃☎➪✒➶⑥➾✡❐ Ï❁Ð Ñ✘Ò★Ó☎Ô✚Õ✖Ö✁×✮Ø✱Ö✙Ù Ú Û✤Ü✙Ô✢Ý☎Û✰Ô✍Ø✱Þ✚Þ✚Õ✰Ô✍Ø★Ô✟Õ✎ß✢à✝áâØ★Ö✁Õ✰ã✟ã✛ÜäØ★Ô✚å✡æ☎Ö✙ç☞Ô✍Ø✔Ô✍Ø★ç☞Õ✰Ô æ☎ã✾Û✰Ó☎Ô✍Ø✔Õ✖ã✾ã✛ß✢ã✾Ý☎Ô✢ã✛Ü✙Ô✢Ý☎Û✰Ô✍Ø✱Þ✚è Ñ✘éêÚ✣Ù áäØ✔Ô✍Ø★ç☞Õ✖Ô✚Ô✟ë☎á✙ÖäØ★ß✟ì íïîñðóòõôóöø÷ùð í è ú❢Ý☎ú☎åùè åùû✑Ú Ù Õ✖Ô Ñ✘ü✤á✰Ý✙Þ✛Þ✚Õ✖Ô✟ß✢Ú Õ✖Ù Ù Ø✝Ø★Ü✰Ü✰Ù Ú áâØ✱ã✟Ú Ý✙Ö☎Õ✖Ô✚ý❃Ü✰Ô✟Ý✙Û✙Ô✍Ø★Þ✛þ●ß✢á✰Ô✟Ú ×✢ß✚Ü✰Ô✟Ý✙Û✙Ô✍Ø★ÞÿØ✱× û✑Ù Õ✖Ô✍Ø✔Ü✰Ô✟Ý☎Û✰Ô✍Ø✱Þ✚Þ✚Õ✰Ô✮Ø✱Ô✟Õ✎Ý✙ú☎åùÕ✰ã✾ã✛ß✢ã✾Ý✙Ô✟ã✛Ü✰Ô✟Ý✙Û✙Ô✍Ø★Þ✭áâØ★Ö✁☞Õ✖ß✢ã✾à Ø★× û✑Ù Õ✖Ô✍Ø✔å✡æ☎Ö✙ç☞Ô✍Ø❄ã✾æ✙ß✟Õ✖Ö✁Ô✍Ø★ç☞Õ✰Ô✢è Ñ✄✂☎à✆☎✞✝✞✟✒ã❃Ø★Ù Õ✰ã✛å✡Ý✙ß❋ü✡✠ ÷ û✑Ú✣ú✑á✤Ü✰Ô✟Ý✙Û✙Ô✍Ø★Þ✛Þ✚Õ✖Ô✍Ø★Ô✟ÖäØ☛✱Õ✖ã❃Ø✱Ù ã✛Õ✖û✑ã✾Õ✖Ô Ø★Ö☎ã✍Ø✱Ù Õ✖ã✌☞✮á✡✟✒Ù Ú✣Ö✙Õ✰ß✍☞ ç☞Õ✎ß✟á✰Ô✟Õ✖×❋ý✏✎✑✝✞✝✞✝✔Ô✍Ø★ç☞Õ✖Ô✟þ③è✓✒✕✔✑ë☎Ù ×✢á✰Ù Ø★Ô✟ã✌☞Ù Õ✖× Ü✰Ô✟Ý✙Û✙Ô✍Ø★Þ✛Þ✚Õ✖Ö❢ß✢ã✾Ó✙Ô✟Ô✟Õ✎ë☎Ö❢Ö✙Ó✙ç☞×✟ë☎Ö✙ç☞Ú Û✰ã✾è è è ✖✑✗✙✘✚✗✙✛✢✜✣✘✢✜✥✤✧✦✩★✧✗✩✪✬✫✏✭✩✮✯✘✚✜✰★✙✤✙✱ ✦✩★✲★✳✜✣✴✬✱✥✵ ✶✑✪✥✷✏✴✯✸✩✴✹✜✰✤✳✘✲✵ ✺✙✻ ✼✄✽✌✾✑✿✞❀❁✾✡❂❄❃✰❅✹❆ ❇ ✾✓❈ assert.h ❉❋❊✯❊✹●✓❍✲■✹❏ ❏- ✡❑▼▲❖◆✞P✡❑❄◗✯❘ assert()
#include <assert.h> int f(int a, int b) { assert(a!=4 && b!=0); return a/b; } int main() { f(2, 0); /* assertion will fail! */ }
13
⑥✑⑦✙⑧✚⑦✙⑨✢⑩✣⑧✢⑩✥❶✧❷✩❸✧⑦✩❹✬❺✏❻✩❼✯⑧✚⑩✰❸✙❶✙❽ ❷✩❸✲❸✳⑩✣❾✬❽✥❿ ➀✑❹✥➁✏❾✯➂✩❾✹⑩✰❶✳⑧✲❿ ➃✥➄ ➅✄➆➈➇➊➉✓➋✐➋❖➌✞➍❄➎✯➏✹➇❝➉✓➐✯➋✌➋✐➑ ➒ ➒ assert() ➓✹➔❝→✥➣✞↔ ↕❄➙✡➛✐➜✲➙✡➝✯➞✌➞❝➟✓➔ ➠ ➔❄➝✯➡✯➔✩➣✞➞✌➞❝➟✓➛❖➣✕➛❄➛✌↕❄➙✡➔❄➢❋➤✩➣❴➥✹➛✌➟✓➛✐➛✌→❬➟✓↔ ➞❝➟✡➦❁➦❁➟✓↔ ➣✞➧✯➦✲➟✓➜✲➛✐➨ ➟✓➩❁➨”Assertion failed on line 23”
➫✯➭❬➯➳➲✡➵❄➫✯➸✯➵✩➺✞➻❝➻✌➼✓➽ ➾ ➫✯➻✌➻❝➼✓➵♣➺✕➽✐➽❖➺✞➚✍➪❄➶ ➹✯➽✙➺✕➪✍➘ ➴✄➷ ➪✍➪❄➼✓➵❄➽✐➬❋➫✹➮✯➪▼➱❬➵▼➼✡➮ ➾ ➶ ➺✆➺✕➽✐➽✌➪ ➾ ➵❄➬ ➚✣➺❴➫✹➭✹➯➳➸✯✃✯➵ ➾ ➱✹➶ ➶ ➾ ➫✯❐❁➼✓➮✆➵✍➫✹❒✕➹✹➪✍➽✙➺✕➵✍➼✡➘ ➴✄➷ ➮✯❐❁➵✩➺☛➶ ➱✹➪✣➺✕➵❄➼❮➺✞➚ ➾ ➱✹➶ ➶ ➾ ➫✯❐✲➼✓➮ ➾ ➺✞➮✆❐❁➼✓➪✍➪❄➹✯➽✐➫✹➻❰➶ ➱✹➽✐➽✙➺✕➵❄➼ÐÏ❬✃✯➵❄➪✍➽✐Ñ ➬ ➮✯➮✯➼✓➯✲Ñ❬➶ ➶ ➼✓➽✐➘ ➴✄➷ ➮✯➚❄➱✹➮✯❐assert()
Ò Ò Ò Ó✑Ô✙Õ✚Ô✙Ö✢×✣Õ✢×✥Ø✧Ù✩Ú✧Ô✩Û✬Ü✏Ý✩Þ✯Õ✚×✰Ú✙Ø✙ß Ù✩Ú✲Ú✳×✣à✬ß✥á â✑Û✥ã✏à✯ä✩à✹×✰Ø✳Õ✲á å✣æ ç✄è♣é❄ê✹ë✯ì❁é❄í✓î✯í✓ï ë✆ð✹é♣ñ✞ò✐ò✌ó❋ì❁í✡ë✯ò✐ó❋ô❬ó í✓é✩ñ✞é❄íÐð❬é▼õ✍ñ✞é✩ñ❴ò✐ó ï ï î✯ð✹ë✯î✯ï ó î❤ñ❴ó❋ë✹ë✯íÐó ì❁í✓ò✌õ❁ï ö✯÷✹ø✁ì❁ð✹é❝ì❁íÐì❁í✓ø✡ï ñ✕é❄í✓é✩ñ✞ì❁í✓ù❄ú ç✄û❲íÐô❬ó ë✯ë✯ù❝ó❋ë✯ò✐íÐê✹ò✙ñ✞ë✹ô❬ü✯é❝õ✕ï ö✹÷✹ø✡í✓ò✐ú ç✄û❲í✓ò✐ò✙ñ❴ï ý✹ò✐í✓é❝ù✍ö✯þ➊í✓ë✁í✓ë✹ø✡í✓ï✲é❄í✓î✯í✓ï ÿ✲þ✌í✓ë✁✡é❄ö✹î✡é✩ñ✞þ✌þ❝í✡é✣ñ✕é❄í✄✂✍ð✹ï ☎❬í✓é ö✯ô❬ò✙ñ✆ñ✕ò✐ò♣ñ✕ë✆✂✍ð❬ë✯ì✍ñ❴ù✩ñ✞þ❝þ❖ñ❴ó ì❁í✓ë✯ò✐ó ô✹ó í✓é✩ñ✞é❄í✄✯ý✆ö✯ï ó ø ñ✝✂✩ñ✞é❄ó ñ✞õ✕ï í✡é✍ú ✞✠✟ é❄ý❬î ñ✕ë✁ê✡☛✡ù❄ò❄ý❬é❝ì❁ý☞✂✍ó ï ø✡í✓ë✆ö✯õ✌☎✍í✓ø✡ò✌ó❋ì✲í✓ë✯ò✐ó❋ô❬ó í✓é✩ñ✞é❄í✓ë✆é✍í✡ô✹í✡é✍í✡é✩ñ✞é ò✐ó ï ï ú ú ú14
✍✏✎✒✑✓✎✒✔✖✕✗✑✖✕✙✘✛✚✢✜✛✎✢✣✥✤✧✦✢★✆✑✓✕✩✜✒✘✒✪ ✚✢✜✫✜✬✕✗✭✥✪✙✮ ✯✏✣✙✰✧✭✆✱✢✭✡✕✩✘✬✑✫✮ ✲✢✳{ int a = 2; /* outer block a */ printf(”%d\n”, a); { int a = 5; /* inner block a */ printf(”%d\n”, a); } printf(”%d\n”, ++a); /* back to the outer block a */ }
✴✶✵✸✷✺✹✼✻✾✽☛✿✾❀❂❁✾✻❄❃✡❅❇❆ ❈✏❉✒❊✓❉✒❋✖●✗❊✖●✙❍✛■✢❏✛❉✢❑✥▲✧▼✢◆✆❊✓●✩❏✒❍✒❖ ■✢❏✫❏✬●✗P✥❖✙◗ ❘✏❑✙❙✧P✆❚✢P✡●✩❍✬❊✫◗ ❯✗❱{ int a = 1, b = 2, c = 3; printf(”%3d%3d%3d\n”, a, b, c); { int b = 4; float c = 5.0; printf(”%3d%3d%5.1f\n”, a, b, c); a = b; { int c; c = b; printf(”%3d%3d%3d\n”, a, b, c); } printf(”%3d%3d%5.1f\n”, a, b, c); } printf(”%3d%3d%3d\n”, a, b, c); }
15
❲✏❳✒❨✓❳✒❩✖❬✗❨✖❬✙❭✛❪✢❫✛❳✢❴✥❵✧❛✢❜✆❨✓❬✩❫✒❭✒❝ ❪✢❫✫❫✬❬✗❞✥❝✙❡ ❢✏❴✙❣✧❞✆❤✢❞✡❬✩❭✬❨✫❡ ✐✗❥ ❦✶❧♥♠✡♦♣♠✡qsr✗t✺✉✌✈❇✇✸✈♥①②✇☛q❄③✺✈❇✈④③✺⑤✆♦✾⑥✡⑤✆q♣③⑧⑦⑩⑨ ❶✆❷✌❸❹⑥✡❺❻③✺✈❇✈♥r✾❼❽③✺❺✢③✝①♥❾❂⑤✡⑤✆✇✸❿ ➀ ❾❂⑤✆⑤✡✇✄❺✾✇✸r♣✇✸❺✾♦✾✇✸❺✢③✺r❄⑦♣③✺❺✢③✝⑤✡⑥✡❺②♦✗③⑩❺♣❾ ③✺⑦s✇✸⑨ ⑤✁⑦s✇✸➁✫➂✆♦✾r♣❿✸➃➄❾ q❄③✺⑤✆qs❺✢③ ✈❇❾ ⑨ ⑨ ✉✡⑥✌⑨ ⑨ ✇✸⑤✁❸➅③✺⑤✁①♥❾❂⑤✆⑤✡✇✸✈④③✺⑤✆♦✾⑥✡⑤✆q♣③⑩r❄✈❇❾❂⑨ ⑨✾③✺⑤✆⑤➅③⑩✈❇❿{ int a, b; { /* inner block 1 */ float b; ... /* int a is known, but not int b */ } { /* inner block 2 */ float a; ... /* int b is known but not int a.*/ /* nothing in inner block 1 is known */ } }
➆✏➇✒➈✓➇✒➉✖➊✗➈✖➊✙➋✛➌✢➍✛➇✢➎✥➏✧➐✢➑✆➈✓➊✩➍✒➋✒➒ ➌✢➍✫➍✬➊✗➓✥➒✙➔ →✏➎✙➣✧➓✆↔✢➓✡➊✩➋✬➈✫➔ ↕✢→ ➙✶➛➝➜❇➜④➞✺➟✆➟✩➞✺➜♥➠✗➞⑩➟✆➡ ➢❂➤✆➜④➞✺➟✡➠♣➥✡➟✡➦s➟✆➢❂➟✡➤☛➧✾➨✆➩②➫✾➭✌➦s➯✄➲✌➳✆➫②➵⑩➡ ➨✡➸✡➺❹➥✌➫❄➦s➯☛➵⑩➻✡➤✆➤☛➢ ➟✆➤ ➼ ➞⑩➠♣➡ ➻✡➧♣➟✆➢ ➟✆➤✆➽ ➙✶➾➚➟✆➜✒➞⑩➤➪➞⑩➜❇➜②➠✢➞✺➫✾➢ ➞✺➵⑩➯☛➡ ➟v
➶②➹ ➘♣➘✾➴☛➷✆➬❇➮✸➱②➘✾➹❂✃{ static int cnt = 0; printf(”*** debug: cnt = %d v = %d\n”, ++cnt, v); }
- cnt
static
æ✫ç✾è❂é ê✆ë✸ì♥í⑩ë✸ì✒î✺ïsë✸ð❻ñ⑩ì✾ì ïsë✸ò✁è ò✆è ì❇è ñ⑩é è❂ó✾ë✸ð✢ñ✺ó❄ô✧èsïsë✸ì❇ì✒ñ⑧õ✩ñ⑩é é✫ì❇è❂é é✫ò✆ö✆é é ÷øö✆ù✡úÙísë✸ú✫û✡é é ë☛ð②ó♣ë✸ï♣ñ✺ò☞ó♣è ì❇ì ü ñ✺ý②é ñ✝ç♣þ✌ð♣ïsë☛ÿ16
✂✁☎✄✆✁☎✝✟✞✠✄✟✞☛✡✌☞✎✍✌✁✎✏✒✑✔✓✎✕✖✄✆✞✗✍☎✡☎✘ ☞✎✍✙✍✚✞✠✛✒✘☛✜ ✢✂✏☛✣✔✛✖✤✎✛✥✞✗✡✚✄✙✜ ✦✧✜ ★✪✩✬✫✮✭✎✯✱✰✳✲✎✫✮✭✵✴ ✫✷✶✷✰✬✸✒✹✖✺✥✻✽✼✱✾✥✿✖❀❂❁❃✴ ✹✖✿❄✴✙❅❆✻✵❇✮❈❉❁❃✲❋❊●❇✮❁❃❁❃❈✵✴❍✶■✾✥❁❃❏▲❑ ▼✧◆P❖✖◗✥❘ ❙ ❚✗❯❲❱✙❳ ❨✧❯❲❩■❬❂❙ ❚✱❩❋❩✖❭ ❪✪❫❵❴✳❛☛❜✮❝✎❞❢❡ ❞✮❣✖❝✵❤ ✐✖❣✖❥❋❦❂❡ ❞✷❥❋❥❋❴❂❝❋✐✗❞❢❧✥❝ auto ♠ extern ♥ register ♦✥♣✥qstatic
r s✪t❵✉✬✈①✇✠②✮✈✖③ ④❍⑤✧②✮⑥✵⑦✵✉⑧③ ②✮⑤✖⑨✵④❍✈✖⑤✖⑩❂③ ②✷⑥❋⑥✵✉✬✈❄❶✥⑨ auto ❷✙❸❺❹✬❻❄❹✬❻ ❼❂❽✵❾✖❿✖❽✎➀ ❸❺❸❉❹ ❽✎➀✮❽ ❹⑧❸❉➁✥➂✵➃❃❹✳➄❂➅✥❻✥❻ ➀ ➃❃➆ ➇ ➇✙➈■❹ ➀ ❻✥➈ ❽✠➀ ➇ ➀✮❿✖❽ ➆❍❻ ❿ ➂✵➄❂➇ ➀ ➂✵➂❋❹ ❽ ❻ ➀✷➉ ➊✪➋ ➇ ➇ ➀❆➌✗➍✮❽✎➀ ➇ ➀✷❿❂❽ ➆ ❻ ❿ ➂❋➄❂➇ ➀ ➂❋➂✵❹ ❽❉➎✵➀✮❽❉➏ ➆ ➄❂➃❃➆ ❿➐➀➑➀ ❻ ➏ ➅✥❻✖➈■❻✖➆ ❻ ❿ ➂ ❾ ❸ ❽ ➁✥➈■❹✬❻ ➉ ➒✂➓☎➔✆➓☎→✟➣✠➔✟➣☛↔✌↕✎➙✌➓✎➛✒➜✔➝✎➞✖➔✆➣✗➙☎↔☎➟ ↕✎➙✙➙✚➣✠➠✒➟☛➡ ➢✂➛☛➤✔➠✖➥✎➠✥➣✗↔✚➔✙➡ ➦✧➧auto
➨✪➩➑➫➭➫➲➯✮➳①➵■➸✬➺❂➻ ➯✷➼❋➸❂➼✎➯✮➼❉➸✬➳❄➽✎➯✮➼✵➾ ➯✷➚✷➸✬➻✙➪✵➶✖➫➹➽✎➯✮➳✖➻ ➾ ➘✖➴❃➷✙➪❋➬①➚■➻ ➾ ➼➮➵✙➸✬➳auto
➱ ✃✪❐❲❒❄❮✎❰✮Ï❉ÏÐ❰✮❒✖❮✎❰✮Ñ❃Ñ❺❮✠❰✮Ñ❃❮❉Ï❉Ò✬ÓÕÔ✎❰✮Ö✵× ❰✮Ø✷Ò❂Ù✙Ó■Ò✬Ú❂Ù ❰✮Ö✎❰✷Ñ❃×❍Û✖❒✥Ò✬Ö❉Ú➐❰✮Ù Ù ❰✷❮➮Ü✱Ý✖Ö❉Ò✬Ñ❃Ñ Ø■Ù Û✖Þ✥Ú ➱ ✃✪ß●à✮Þ✥Ú✖Ò✬Ù Û✖Ö✵Ó■Ò✬Ñ auto á➐â✷ãäâ✮ã✥å❋æ✥ã✖ç❋â✷è➮é✱ê✖ë➲â✮ì❃ì❺í✬î✙ï❂ð ñ❍ò✱ñ❍ì❺è✵ï❂í✬ò✥ñ é✱ñ❍í✬ë✎â ð â✮ó✖ë✵ñ ã✖ó✖á❂ð â✮è✵è❋í✬ãauto int a, b, c; auto float f;
ô✪õ❲ö✱÷❃ø✬ù✵ú❋û✖ü➭ø✬ý❄þ✎ÿ✮ù✁ ÿ✄✂✷ø✆☎✵ÿ✄✝✥÷✵û✥ü➲ÿ✮÷✞ ú✠✟✖÷✡✂☛☎- ù auto
17
✲✴✳✶✵✷✳✶✸✺✹✻✵✺✹✽✼✿✾✰❀✿✳✰❁❃❂❅❄✰❆✍✵✷✹❇❀✶✼✶❈ ✾✰❀✤❀❉✹✻❊❃❈✽❋- ✴❁✽❍❅❊✍■✰❊✗✹❇✼❉✵✤❋
extern
❑▼▲❖◆✞◆✪P✠◗✗◆✞◆❙❘✄◆✞◆✪❚✍❯✠❱✆❲✁❳❨❚✍❲✰❘❬❩ ❭✍❳❨❪✍❲✁❫❙❘✖◆✞❩✫❪✗❭❴❫✡❱❛❵ ❵ ❘✖❭❴❜☛❵ ❪✍❝✗❞❴❪✍❝✗❡ ❳❨❢✗❭✍❞❛◆✞❩ ❪✍❭✍❱✆❲✡◗✗❲❣❘✄◆✞◆❙❘✖❭✍❯✠◗❨❭✍❤✠❘❬❱✆✐✤◆✁❱❛❲✁❭✘❘❬❯✻❘✄❲✁❩ ❘✄❜✄❵ ❱✆❲✁❥ ❑▼❦❧◗❨❲✡❱✆❭❴❯✻❘✄❲✁❩ ❘✖❜☛❱✆❵✤❤☛❱✆❞✍❵ ❘✖❲✁❱✆❲✰❘✖P✡❢✍◆✶❘✄❭✍❳❨❚✍❲✡❱✆❭❴❳❨❢✗❭✍❞❛◆✞❩ ❪✍❭❴P✁♠✧◗✗❲ ❵ ❘✖♥✍❲✁❩ ❭✍♥✍❱✆❭❴♦❛❱✆❲✁❫❙❘✖❭✍❱✆❭✗◆✪❪✍❝✗❡♣❤☛❱✆P✁Pq❵ ❘✄♥❛❲✁❩ ❭✍♥✍P✠❞❛❵ ❘✄P✠Pq❜☛❵ ❩ ❲ extern r s▼t❖✉❴✈✁✇✗①✠②✖✉❴③✰②✖④✁⑤ ②✖⑥✄⑦❛⑧✤⑨✗④✡⑩✍⑧ ❶✍⑥❨②✄⑧✤❷❨❸✍④❣②✖⑧ ⑧ ②❹❷✗❺✗✉✍❻✍❼✞⑤✫❶✍✉✗⑦✆④✡✈✠❶✍❽ ①☛⑦✆❻❛⑧ ②✖④✁⑦✆④✰②✖✈❿❾❛➀✖➁✶❾➃➂❴➄✰➅✖➆✁➇ ➅✖➈✄➉❛➊ ➋☛➉✆➌❛➊ ➅✖➆✰➅✄➍✞➇✫➎✍➏✗➉✆➏✍➐ ➑▼➒❧➎✗➆✠➓❙➅✖➊ ➍✪➔❨➆q→✍➊ ➎✍➈✠➅✖➊ ➅❹➣✶➉✆➊ ➊ ➉✆➆✡➉❛↔☛➍✞➉✆➆✁➏✘➅✖↕❙➄✰➅✖➆✁➇ ➅✖➈✄➊ ➉❛➆✡➇✫➏✍➍✞➉❿➈☛➆✰➅❬➙❨➛✍➆ ➜ ➆✁➎✍→✍➆✰➅✖➓✪➓✡➉✆➍✞➝✡➌❛➎✍➆✁➆✁➉✆➌❛➍✞➞✤➉✆➍✞➐ ➑▼➟✕➄✠➉❛➏❴➙❨➠✍➏✗➌❛➍✞➇✫➎✗➏✍➉✆➆✡➌➃➅✄➏❴➋☛➉✆➌❛➊ ➅✄➆✠➉❛➆✰➅✖➝q➍✞➇ ➊ ➊✁➅✖➍✞➍✪➄✻➅✄➆✰➅❬➉✆↔☛➍✞➉✆➆✁➏✘➅✄➐ ➡✴➢✶➤✷➢✶➥✺➦✻➤✺➦✽➧✿➨✰➩✿➢✰➫❃➭❅➯✰➲✍➤✷➦❇➩✶➧✶➳ ➨✰➩✤➩❉➦✻➵❃➳✽➸ ➺✴➫✽➻❅➵✍➼✰➵✗➦❇➧❉➤✤➸ ➽✰➾#include <stdio.h> int a = 1, b = 2, c = 3; int f(void); int main(void) { printf(”%3d\n”, f()); printf(”%3d%3d%3d\n”, a, b, c); return 0; } int f(void) { int b, c; a = b = c = 4; return (a + b + c); }
18
➚✴➪✶➶✷➪✶➹✺➘✻➶✺➘✽➴✿➷✰➬✿➪✰➮❃➱❅✃✰❐✍➶✷➘❇➬✶➴✶❒ ➷✰➬✤➬❉➘✻❮❃❒✽❰ Ï✴➮✽Ð❅❮✍Ñ✰❮✗➘❇➴❉➶✤❰ Ò❇Óextern
Ô▼Õ×Ö✖Ø✗Ù✍Ú✆Û Ü✍Ý✁Þ☛Ú✆ß extern à➃á✄â✕á✖â✗ã✠ä✗â✍å✠á✄æqã✁ç✫åèå☛é✆à✍ê á✖ë✰á✖ì✞ç í✍â✍é✆âîá✖ã é✆ï☛ì✞é✆ë✁â✘á❹ã✻á✖ë✁ç á✖ð☛ê é✆ë✁ñ✤ò✡é❛â❴à❛ë✁ä✗ã✁æqé✴ó❨ô õ▼ö â❴é✆ï☛ì✞é✆ë✁â✧ã✻á✖ë✁ç á✖ð☛é✆ê✤à➃á✖â✧é✴ó❧÷✍é✆æqê á✄÷❛ë✁ç â✍÷✍æ✠à❛ê á✄æ✠æ✁é✆ë✁â✘áauto
ø✆ù ù ø❛úregister
û ü▼ýîþ✆ÿ✁✄✂✖ÿ✆☎✍þ✞✝ static ✟✡✠☞☛✞✌✁✍✏✎✁✑✓✒ ✔ ✕✗✖✘✌✚✙✜✛✢✌✚✍✏✌✢✔✣✌✢✤✥☛✞✌✁✦★✧✥☛✞✩✪✔✣☛✞✒ ✒✡✫✬✦★☛ ✦★☛✥✌✭✖✘✕✜☛✯✮✱✰☞✲✴✳- extern
#include <stdio.h> int a = 1, b = 2, c = 3; int f(void); int main(void) { printf(”%3d\n”, f()); printf(”%3d%3d%3d\n”, a, b, c); return 0; }
19
❥P❦✬❧❘❦✬♠❯♥❑❧❯♥❲♦❨♣❬q❨❦❬r❫s✴t❬✉✚❧❘♥❍q✬♦✬✈ ♣❬q✡q❜♥❑✇❫✈❲① ②Pr❲③✴✇✚④❬✇✢♥❍♦❜❧✡① ⑤❑⑥int f(void) { extern int a; /* look for it elsewhere */ int b, c; a = b = c = 4; return (a + b + c); }
⑦⑨⑧✼⑩✞❶❄❶✬❷❇❸✚⑩✞❹☞❺❬❷✘❻☞❻❼❷❇⑩✞❽✪❽✪⑩✞❾✥❶❅❺✜❿✚❻➁➀✏⑩✞❶❅❶❄➂ ➀✏➂ ❸✄❷✓❹★⑩➄➃✥❹✜❿✚❸✚❹❬❷✘❻☞➅❍⑩✥➆✏⑩✞❻☞➃✥➇ ⑩✞❶❄➈ ⑦⑨➉➊➆✏❶❄⑩✞❹✜➋✭❷➍➌❑❷✘❹✜➂ ❷✘➎✓➇ ⑩✞❹☞❽✢➏✢❹✜❺★➌★➂ ➋✚➋✚⑩✥❹➐❷✓➇ ➀✏❹✜➂✣❸✚➈✞⑧✼⑩➄❾✄❷✘➋●❷✓➋✚➌★➑✪➋✚➀★❷✘❺☞❽✢➏✢❹➐❷✓❶❄❶ ➏✚➌✜⑩✞❹✜❽✪➏✚❹❬❷❇➂ ➋✚❽✪❿✚❹✜❻✗❷✘❶❄➂ ❿✚➋✆❻❅⑩✞➇ ➇ ❷✓➋✆❽✪➒✚➋✢❾✥❶❄➂✣❿✢➋✚⑩✞❹✜➈✞➓❏❽✪❶✬❷❇➑✪❹☞➀✏⑩✞❶❄❶✬❷→➔ ➣✼↔✬↕ ➙✏➛❑➜✓➝ ➞⑨➟➊➠✏➡❄➢ ➛✜➤✭➜➍➥❑➜✘➛✜➦ ➜✘➙✓➧ ➢ ➛☞➨❑➩✪➫✚➛✜➭★➥✜➦✣➤✚➤ ➢ ➛✜➨➐➯ ➡ ➦ ➧ ➧ ➩✪➲✢➧ ➧ ➦ ➳ ➡❄➵ ➤✚➲✢➛☞➦ ➸ ➢ ➤ ➡ ➦ ➩✢➦ ➢ ➛❬➜✘➛ ➢ ➤ ➺✚➻ ➸ ➢ ➩✪➦✣➤ ➢ ➛❬➜✘➭★➝ ➼P➽✬➾❘➽✬➚❯➪❑➾❯➪❲➶❨➹❬➘❨➽❬➴❫➷✴➬❬➮✚➾❘➪❍➘✬➶✬➱ ➹❬➘✡➘❜➪❑✃❫➱❲❐ ❒P➴❲❮✴✃✚❰❬✃✢➪❍➶❜➾✡❐ Ï❲Ðregister
Ñ⑨Ò✼Ó✞Ô✢Ô✭Õ❇Ö Õ✘×✚Ø✜Ù Ô✚×✚Ú★Û✥Ö Õ✓Ú★Ú✱Ú✜Ü✢×✚Ó✞Ø☞Ý✢Þ❅Û✥ß✢à☞á✥Ù Ö Õ✘Þ❄ß✚Ø✜Ô●Õ✓Þ❄Þ❅â❑Õ✘Ø✜Ù Õ✘ã✏Ö Ó✞Ø✜Ô✭Õ❇Ú✜Û✄Õ Ö Õ✘×✚Ø❬Õ✘Ú☞Ù✏á✥Ø✜ß✢ä✢Ó✞Ú★Ú✜ß✚Ø✜Ô✚Ú☞Ù✣Ô✚Þ❄Ó✥Ø★Ô❍Õ❇Ø✜Ó✞×✚Ù✣Ú✜Þ❄Ó✞Ø✜å Ñ⑨Ò✼Ó✞Ú✜Ú❑Õ❇Ø✜Ó✞×✚Ù Ú★Þ❄Ó✞Ø☞Ü✢Øçæ❅è➊é✪ê✥ëíì✘î★ï❍ð✘ñ✏ñ✪ð✘ò✜ó✯ô✪ï✆õ✏ó✞ö❅÷❬ð✘ï✚ø ù ú✄ð➍û☞ù ï✚ï✚ó✞ö❄ü ý⑨þ❏ô✪ò☞û✗ð✘ï✁õ✏ó✞ÿ✥ø ð✘ò✜ó✞ò❬ð✓ò✱ó✥ï✆÷❑ð✓ò★ù ð✘ñ✏ó✞ø✡î✁✢ûregister
✂☎✄ ✆✞✝✠✟☛✡✌☞✎✍✑✏ ✟☛✏✒✡✓✟☛✔✠✕✠☞✌☞✖✟☛✏✠✗✁✍✙✘✛✚✜✕✠✏✞✘✛✚✜✢ ✢☎✔✣✕✤☞✌✥✣✚ ✢ ✍✑✘✛✕✠✡✓✏✤✦☛✧★✟☛✏✒✔✩✍✑✏✒✪✁✫✬✢ ✭✮✍✞✍✙✘✛✘ ✚ ✝✣✏✤✕✠✡✓✟☛✡✯✍✰✗✱✚ ✏✒✲✙✟✣✝✣✫✬✡✯✍✑✏✠✦ ✳✵✴ ✆✤✏✠✝✩✍✰✡✓✟☛✝✠✚ ✄ ✘✛✟☛✡✌✚✱✥✠✡✓✕✠✶✤✟ ✄✓✄ ✕✠✡✓✏✒✫✬✡✌✗✱✟ ✄✁✄✓✷ ✘✛✕✤☞✸✡✓✟ ✄ ✟✣✡✓✪✁✟☛✡✯✍✑✗✱✟✺✹✬✻✤✡ ✄✽✼✑✄ ✘✓✟✣☞✌✾✿✫✤✏✤✗✁✍✑☞✌✆✬✢☎✕✠✶✤❀❁✔✩✍✑✏✒✚ ✏✠✘✛✟❂✍✑✏✤✪✁✫✤✏✤✗✁✍ ✄ ✹✬✻✠✡✌✪✯✍✑✏✠✢ ✚ ✝✩✍✰✥✣✡✓✕✠✝✠✡✯✍✑☞✖✦ ✳✵✴ ✟☛✏✒✕✠☞❃✗✱✟☛✘✖✹✬✚✜✏✠✏ ✄ ✢ ✟☛✗✱✚ ✝✩✍✰✡✓✟☛✝✠✚ ✄ ✘✛✟☛✡ ✂ ✔❄✍✑✏✞✥✣✡✓✕✠✝✠✡✯✍✑☞✌☞✖✟☛✘ ✄ ✏✩✍✙✲✙✲✁✍ ✄ ✷ ✥✣✥❅✲✱✟☛✘ ✼ ✗✱✢ ✚✜✝✠✘✛✦20
❆❈❇❊❉❋❇❊●■❍✽❉■❍✮❏▲❑✯▼▲❇✯◆P❖❘◗✯❙✠❉❋❍✿▼❊❏❊❚ ❑✯▼☎▼❯❍✽❱P❚✮❲ ❳❈◆✮❨❘❱✠❩✯❱✤❍✿❏❯❉☎❲ ❬✮❭{ register int i; for (i = 0; i < LIMIT; ++i) { ... } } /* block exit will free register */
❪✵❫❵❴✒❛✯❜✑❴✠❝ ❞ ❡❅❛✯❜✑❢✓❞ ❜✑❣✙❤✣❝✓❜✑✐✛✐✖❥✱❤☛❦✣❝ ❜✙❢✓❤☛❢✯❜✰❧✁♠✤♥✸❢✓❤☛❡✠❞✜❧✓✐✛❤☛❢✌♦✤❢ ❝ ♠✠♠✤♣✣❛✽❜✑❢✓❞ ❜✑❣✱❝ ❤☛❢✓q ❪✵r★❤☛❧✓❧✽❜✞❜✙❴✠❛✁♦✬❴✠❥✱❧s♠✠t✬✐❊❜✉♠✠✈✤✇❁✐❊①✬♦✬❴✩❜✑❢✌♥✌❤✣❧✁✐✖♣✣②★❜✙✐✛✐✖❣✙❝ ❞☎❢✓❤☛❡✠❞✜❧✓✐✓❤✣❢✓③ ❛✽❜✙❢✓❞ ❜✑❣✱❝ ❤☛❢✓q ❪✵④⑤♥❃❞✜❴✤❡✣❤☛❴✞✐❊⑥❵♣⑦❜✑❴✠❡✠❤☛❧✁⑧✛❜✑❴✠✐❊❜✑❧✌✐❊⑥❵♣✠❤☛❴✒❛✽❜✙❢✯❜int
register i; ⑨✯⑩✤❶❯❷✯❸✣❸✤❷P❶❯❷✽❹✣❶❘❺❊❸ register int i;
❻❈❼❊❽❋❼❊❾■❿✽❽■❿✮➀▲➁✯➂▲❼✯➃P➄❘➅✯➆✠❽❋❿✿➂❊➀❊➇ ➁✯➂☎➂❯❿✽➈P➇✮➉ ➊❈➃✮➋❘➈✠➌✯➈✤❿✿➀❯❽☎➉ ➍✿➊ ➎✵➏➑➐❊➒✑➐✛➓ ➔✁→✩➒✰➣✱↔☛→✣↕ ➒✙➙✯➒✑➐✛➓✜➛✤➜✠↔☛➙✌➝✓➒✑➙✌➐✛➞✁➟⑤➞✁➓ →✣➐✛➓✜➠✩➒✞➒✙➜✠➞✁➡✬➜✠➣✱➜✠➓ ➜✠➠✠➔✁➛✠➢✖➙✓➟✤➣✱↔☛➜✤➤ ➥➧➦ ↔✺↕ ➟✬➐✛↔☛➙✌↔☛➜✒↕ ➛✠→✩➒✑↕☎➞✽➒✙➙✓➓ ➒✑➨✱↔☛↕☎➨✱↔☛➝☎➟✤↕ ↕ ➒✉➔✁➓ ➐✛➐✖➠❄➒✙➢✌↕ ➒✰➞✓➡✤➙✓➣✱↔ ➥➧➦ ↔✺→❄➒✙➜✒➛✠➩✬→✣➔✁➟★➒✙➜✠➞✁➡✬➜✠➣✁➒✑➔✌➞✁➓ ➣➫↔☛➭✱➐✛↔☛➙✓➜✩➒✰➣✱↔✣→✣↕ ➒✑➙✯➒✑➐✛➓ ➛✠➜✠↔✣➙✌➯❊➔✁↔ ➔✁↔✣➜✩➒✑➙✓↔✺➲s➳✌➵void f(void) { static int cnt = 0; ++cnt; if (cnt % 2 == 0) .... /* do something */ else .... /* do something different */ }
21
➸❈➺❊➻❋➺❊➼■➽✽➻■➽✮➾▲➚✯➪▲➺✯➶P➹❘➘✯➴✠➻❋➽✿➪❊➾❊➷ ➚✯➪☎➪❯➽✽➬P➷✮➮ ➱❈➶✮✃❘➬✠❐✯➬✤➽✿➾❯➻☎➮ ❒✛➮ ❮✵❰☛Ï✑Ð✓Ñ✬Ò✠Ð✌Ó✁Ô✩Ï✰Õ✎Ï✙Ö⑦Ï✑Ö✠×✓Ø✤Ö✠Ù✁Ï✉Ó✁Ú❊Ï✑Ú✛Û Ó✁Ô❄Ï✉Ü☛Ý✱Ú✛Ü☛Ð✓Ö✩Ï✰×✯Ï✑Ð✓Û Ï✑Þ✙ß Ü✣Ð✓à✒á❵Ý✱Ú✛Ü☛Ð✓Ö✩Ï ×✽Ï✙Ð✓Û Ï✑Þ✱ß Ü☛Ð✌Þ✱Ü☛â☎ã✤ß ß Ü✣Ð➑ä✁å✒Ð✓Ü☛Ù✁Ï✙Ö✒Ó✁Û Ú✛Ú✖æ✩Ï✑Õ✌ß Ï✉×✁Ø✤Ð✓Ù✱Ü☛ç ❮✵á❵Ö✒×✓Û✜Ô✣Ú✛Û æ✒è✣Ð✓Û✜Ö✠é✬Û✜è✒Û✜Ö✠ê✤Õ✸è✣Ð✓ê✠æ✠Ð✯Ï✑Õ✖Õ✌Ü☛Ð✓Û Ö✠æ✒Ø✤Ð✌Õ✌ê✤Ù✱å✠ß Ï✑Ð✓Û✜Ú✛Ü☛Ú✛ç✣ë✎Ü☛Ö✠ê✠Õ Ï✑Ú✛Ú✖Ó✓Ü☛è❄Ï✑Ð✓Ü☛Ð✯Ï✰ê✤ß Û✜Ô✩Ï✰Ù✱Ü☛ß Ï✑Ð✎Ï✙×sÜ☛Ú✛Ú✖è✣Ð✓ê✠æ✠Ð✯Ï✑Õ❃Ó✁ã⑤å✠Ö✤Ù✱Ü☛Ð✓ß Ø✤Ú✛Ú❊Ï✑Ð✌ÕìÏ✑Ö Ù✱Ü☛Þ✱å✤æ✣æ✠Û Ö✠æ✠ç ❮✵í⑤Õ❃Ü☛Ö✒Ü☛Ý✱Ú✛Ü✣Ð✁Ö✞×✽Ï✑Ð✓Û Ï✑Þ✱Ü☛ß☎Ù✱Ü☛Ô✣ß Ï✙Ð✓Ü☛Ð✯Ï✑ÓsÓ✓ê✠Õstatic
î☎ï✠ð✠ñ✌ñ✖ò☛ó✌ô✱ò☛õ✁õ ó✓ö✤÷✤ï✠ø✁ù ô✱ôsú✑û✛û✖ü✙ò✣ý✣ó✓ö✬þ✠õ✽ú✑õ✌û✛ù✜ÿ ÿ✁✤ù ÿ ò☛þ✒õ✓ð✠ñ✸ô✱ò✣þ✒ô✱ò☛ï✣ÿ ú✙ó✓ò☛ó✯ú✑ô✱ò☛õ✌ù✱ð✠÷✄✂ ü✁ú✑ó✯ú✰ø✽ú✙ó✯ú✰û✛ù✜ÿ ÿ ý✣ö✬þ✠ý✠ÿ ù✜ý✒ù☎✝✆✤þ✠ï✠û✛ù✜ð✠þ✤ò☛ó✌õ✁ð✠ñ❃ô✱ò☛ï✣ÿ ú✙ó✁ò✣ó✽ú✙õsþ✠ò✣ô✁ú✑þ✞✄✟✠ó✌ù ✬ù✜ÿ ò✣þ✞✠ ✡☞☛ ø✁ò✣þ✒ð✠ñ❃ò☛þ⑦ú✑þ✤þ✩ú✑þ✌✬ù ÿ☎✄✟✠ó✓õ✍✟✠ï✠ò☛ó✌ï✣ð✠ñ✖ñ✎ú✏✎✬û✖ô✱ò☛þ✒ò✒✑✱û✛ò☛ó✓þ✩ú ø✽ú✙ó✓ù ú✑ü✱ò☛ÿ þ✒ñ✖ò☛ô➫þ✔✓✑÷✤ï✠ò☛ÿ ð✠ó✓ô✱ò☛û extern ✕✗✖✙✘✛✚✞✜✢✜✤✣✒✥✤✦✧✣✒★✩★✫✪✬✪✭★✩★ ✜✤✮ ✕✍✕✗✯ ✰✭✱✝✘✲✪✭✕✗✳ ✴☞✵ ✣✒★✢✶✄✷✝✸✞✹✞✣✒✥✺✪✭✥✻✪✭✯ ✯ ★✗✕✗✖✙✕✗✚✞✜✼✣✒✸✙✽✿✾✛✥✗✮❁❀✺✪✭✱❂✰✭❃❂✜✢✣✒✱✝❄✗✪❅✸✞✮❁✕✗✜✤✽✿✳ ❆❈❇✫❉❊❇✫❋❍●✿❉❍●❏■▲❑✺▼▲❇✺◆✁❖◗P✺❘✞❉❊●❂▼✫■✫❙ ❑✺▼☎▼❚●✿❯✁❙❏❱ ❲❈◆❏❳◗❯✞❨✺❯✝●❂■❚❉☎❱ ❩✩❬#define INITIAL_SEED 17 #define MULTIPLIER 25173 #define INCREMENT 13849 #define MODULUS 65536 #define FLOATING_MODULUS 65536.0 static unsigned seed = INITIAL_SEED; /* external but private for this file */ unsigned random(void) { seed = (MULTIPLIER * seed + INCREMENT) % MODULUS; return seed; } double probability(void) { seed = (MULTIPLIER * seed + INCREMENT) % MODULUS; return (seed / FLOATING_MODULUS); }
22
❭❈❪✫❫❊❪✫❴❍❵✿❫❍❵❏❛▲❜✺❝▲❪✺❞✁❡◗❢✺❣✞❫❊❵❂❝✫❛✫❤ ❜✺❝☎❝❚❵✿✐✁❤❏❥ ❦❈❞❏❧◗✐✞♠✺✐✝❵❂❛❚❫☎❥ ♥❈♦ ♣☞qsr✌t✄✉✝r✞✈✛✇✩① ②✞r✌✈✲③❅r✌②✞④✄✈✛⑤✍⑥✙⑦✧⑧✛✈✛⑨ ③✭⑩✗⑧✒⑩✺③❅⑤❶⑤✍②✝❷static
❸✞❹✄❺❼❻❅❽ ❾ ❿ ➀✧➁ ❿✗➂✢➃ ➀➅➄✿➆ ❿✗❾ ➇✿➈✭➉ ➄✻➊✝➋ ❿ ➀ ➃✒➌ ➊ ❾❁❽ ➃✛➌✞➍static int g(void); /* funktionsprototyp */ void f(int a) { /* funktionsdefinition */ .... /* g() är tillgängligt här, */ } /* men inte i andra filer */ static int g(void) { /* funktionsdefinition */ .... }
➎❈➏✫➐❊➏✫➑❍➒✿➐❍➒❏➓▲➔✺→▲➏✺➣✁↔◗↕✺➙✞➐❊➒❂→✫➓✫➛ ➔✺→☎→❚➒✿➜✁➛❏➝ ➞❈➣❏➟◗➜✞➠✺➜✝➒❂➓❚➐☎➝ ➡❂➡ ➢☞➤✬➥✝➦✍➧➩➨✭➫ ➨➯➭✿➨✭➦✗➲ ➨✭➳✧➫ ➵✒➦✤➸ auto ➺✞➻✄➼register
➽➩➾❁➚✝➚✞➪✒➶☎➹✄➘ ➘ ➪✒➴ ➷✍➬ ➴✍➮✄➱✛✃✍➮✄➴✗❐✧➪✒➚✌❒✞❮❰❐✧➪Ï➾❁➚✝Ð✩➪Ï➶✗Ñ✭➴✤➾ ➚✞➾ Ð✗➾ Ñ✭➘ ➾ ➷ ➪✛➴✿Ñ❅Ð ➷✍Ò Ó☞Ô ➮✝➴✗➪✒❮✢❒✞Ð ➷ ➹✬➾❁➚✝➾❁Ð✩➾ Ñ✭➘ ➾ ➷ ➪✒➴✺Ñ ➷ ➪✒Õ✧Ð✩➪✒➴✗➚✔Ñ✏❒✝Ö✝➶ ➷ Ð✫Ñ❅Ð✩➾ ➷✗➬ Ñ✏✃✿Ñ❅➴✗➾ Ñ❅×❅➘ ➪✒➴✤Ð✩➾ ➘ ➘ ➚✞❒✝➘ ➘☎❒✞❮✼➾ ➚✞Ð✩➪Ï➱✛➴✗❒✝Ø✛➴✺Ñ❅❮✤❮✤➪✛➴✿Ñ❅➴✗➪✒➚ÙÑ✭➚✝Ø✛➪✛➴❶➪✛Ð✩Ð✢✃✍➮✝➴✗❐✧➪ Ò Ó☞Ú ➾ ➷✗➷ Ñ✏Û❅Ü ➬ ❒✞❮✤➱✞➾❁➘ ➪✒➴✺Ñ❅➴✗➪ ➷ ➮✝Ð✩Ð✩➪✒➴✤❐✧❒✝Ö ➬ ✃✗➮✝➴✗❐✧➪✒Ð✢➱✛➹ auto Ý❏Þ✿ß✭à✗á ß✭â❅ã ä✒à å á ã ã☎æ✞ç✞ã ã☎ç✝è✼é✛à✗ç✞ê✞à✺ß✭è✢è✤ä✒à✺ß❅à✍ä✛æ✌á❁æ å äëß✭æ✞ê✞ä✒à✤æ✞ì✄ê✛ç å ß✭æ✞æ✔ß å✩í î☞ï ä å✩å ß✏ð✔ß✭æ✌ñ✧ç✝ò✝ðôó✍ð✞á❁ã õ❏ß➯ó✍á êôì å ç✞ò✝ö❼ó✗ç✞è✼é✞à✍ç✝ê✛à✺ß❅è✤è✤ä✛à✺ß✭à✗äÏâ❅÷✝à✤è✻ß✭æ á æ å äÏã á å ß✏é✛ì✙ñ✧ä å✗å ß➯ø å ß❅æ✌á ó å✩ù ã ã ä å ä✛ú✧é✛ã á ò✝á å ó ù✝å✩å ß✏Þ ù à✗ñ✧ä✒æ å á ã ã☎æ✞ç✞ã ã í23
û❈ü✫ý❊ü✫þ❍ÿ✿ý❍ÿ✁✄✂✆☎▲ü✆✝✟✞✡✠✆☛✞ý❊ÿ☞☎✌✌✍ ✂✆☎✎☎❚ÿ✑✏✟✍✁✒ ✓✔✝✁✕✡✏✗✖✆✏✝ÿ☞❚ý✎✒ ✘✔✙ ✚✜✛✣✢✥✤✧✦★✢✗✩✫✪✭✬ ✮✗✢✥✯✧✰✱✰✳✲✫✩✫✦✗✰✳✴✳✬✶✵✷✮✗✸✺✹✻✲✫✢✽✼✾✢✗✰✳✮★✿❀✼✾✴✱✴✳✬✶❁✥✴✑❂❃✯★❄ ✵❃❅✎✹✎✬✶✰✳✲❆✩✫✪❇✲❆❄ ❄ ✲❆✰ ✬ ✢✗✹✻✬✶✰✳✲❆✩✗✪✭❈ ✚✜❉✽❄ ❄ ✼❊✤★✦★✢✗✩✗✪✭✬✶✮✗✢★✲❆✰✷✩❀✼✾✢✽✼❋✢✗✰✳✮✗✿❀✼❋✴✱✰✳✲❆✩✫✦★✰✳✴❃✬ ✵❃✪✭❈ ✚✜●❍✴❃✬ ✢✥✲❆✢✗✩✗❄ ✼✾✴❃✪✭✲■✤✧✮✗✰✳✸❏✯★✰✷✰✳✲❆✩✫✦★✰✳✴❃✬ ✮✗✢✥✲✫✢✗✩✫✲❆❄✳✼❋✪✭✪✷✤✧❑★✰❃✴✳✪✭▲★❈#include <stdio.h> int main(void) { printf(” The universe is never ending! ”); main(); return 0; /* kommer aldrig att nås! */ }
▼✔◆✌❖P◆✌◗❙❘✑❖❙❘✁❚✄❯✆❱✄◆✆❲✟❳✡❨✆❩✗❖P❘☞❱✌❚✌❬ ❯✆❱✎❱❭❘✑❪✟❬✁❫ ❴✔❲✁❵✡❪✗❛✆❪★❘☞❚❭❖✎❫ ❜❀❝ ❞✜❡✾❢★❣✐❤✾❥✭❥❇❦❃❧★♠✷♠❇♥❆❣✆❤♣♦✻♥■q✧♥❆♠❏q✧❢✗❣✳❦❃❥✌❤♣r✎♥✫s ❥✌❤✾s ♥❆t✥✉✈❤✾t✥♠✇❤✾t✥❦✳✉✫❣✳①✶②✆❤int sum(int n) { if (n <= 1) return n; else return (n + sum(n-1)); } sum(1) 1 sum(2) 2 + sum(1) eller 2 + 1 sum(3) 3 + sum(2) eller 3 + 2 + 1 sum(4) 4 + sum(3) eller 4 + 3 + 2 + 1
24
③✔④✌⑤P④✌⑥❙⑦✑⑤❙⑦✁⑧✄⑨✆⑩✄④✆❶✟❷✡❸✆❹✗⑤P⑦☞⑩✌⑧✌❺ ⑨✆⑩✎⑩❭⑦✑❻✟❺✁❼ ❽✔❶✁❾✡❻✗❿✆❻★⑦☞⑧❭⑤✎❼ ➀✈➁ ➂✜➃✷➄✾➅✭➆❆➇✐➄❋➅✭➈✶➉✳➊✫➅❇➉❃➋➍➌ ➎✾➏✻➆❆➐✷➏✻➆✫➑★➈ ➒✗➈ ➅✭➈✶➓★➒✗➆❆➒✽➄❋➔■→✁➣✾↔✫↕★➙✌➛✌➜➝➛✾➞✳➟✗➠✺➡✧➢✗➤ ➥✧➦✫➧0! = 1, n! = n(n-1) ... 3*2*1 för n > 0 eller ekvivalent 0! = 1 n! = n((n-1)!) för n > 0
➨✜➩❍➫❊➭❀➯✾➲✥➳✎➵❆➸❇➺❃➭✫➻✳➼ ➽✑➯✾➺✷➻✳➵❆➭✫➾★➻✳➺❃➼ ➽❃➸❇➺❃➚★➪int factorial(int n) { if (n <= 1) /* antar att n inte är negativt */ return 1; else return (n* factorial(n-1)); }
➶✔➹✌➘P➹✌➴❙➷✑➘❙➷✁➬✄➮✆➱✄➹✆✃✟❐✡❒✆❮✗➘P➷☞➱✌➬✌❰ ➮✆➱✎➱❭➷✑Ï✟❰✁Ð Ñ✔✃✁Ò✡Ï✗Ó✆Ï★➷☞➬❭➘✎Ð Ô❀Õ Ö✜×✾Ø★Ù★Ú✫Û✭Ü✶Ý✗Ù★Þ❆Ù✥Ú❀ß❋Ù✥Ý✗à★Ú✗á❃â➍á✳Ú✫ã✳Ü✶ä✆ß✾á✱Ü Û✭Þ❆ã✆ß✾Û✭Ü ä❃Ûint factorial(int n) { int product = 1; for (; n > 1; --n) product *= n; return product; }
25
å✔æ✌çPæ✌è❙é✑ç❙é✁ê✄ë✆ì✄æ✆í✟î✡ï✆ð✗çPé☞ì✌ê✌ñ ë✆ì✎ì❭é✑ò✟ñ✁ó ô✔í✁õ✡ò✗ö✆ò★é☞ê❭ç✎ó ÷❀ø#include <stdio.h> void wrt_it(void); int main(void) { printf(”Input a line: ”); wrt_it(); printf(”\n\n”); return 0; } void wrt_it(void) { int c; if ((c = getchar()) != ’\n’) wrt_it(); putchar(c); }
ù✔ú✌ûPú✌ü❙ý✑û❙ý✁þ✄ÿ✁✄ú✁✂☎✄✝✆✁✞✗ûPý✟✌þ✡✠ ÿ✁☛❭ý✌☞☎✠✎✍ ✏✑✂✎✒✝☞✔✓✁☞★ý☞þ❭û☛✍ ✕✁✏ ✖✘✗✚✙✜✛✔✢✤✣✥✣✧✦ ✢✩★✜✪✬✫ ✭✯✮✱✰✩✪✳✲✴✣✵✪✱✶✵✙✸✷✹✰✺✪✴✰✼✻✩✽✜✪✴✾✬✫ ✿✌✣❀★✜❁✜✲✚✫❂✭✯✰✩✪✌✣✵✭✯✫❂✿✁✣❀✦ ❃✔✾✴✛✔✫ ✛✔✢❄✣✵✪✴❅ ✖✘❆❇★✜✪✬✮❈✣✧✦ ✭❉✾✴✙✥❊✜✪✱✷✹✰✼✛✥✪✬✰✩✻✩✽✜✪✴✾✬✫❂✿✁✣❀❋✸★✔✪✴✮❉✽✔✦ ✰✩✪✬✫ ✛✔✢✔✰✼✛●✿✁✣✧❁✜✻✔✪✁✣✧✪✴✰✺★✔❁✜✲ ✣✧✛✜✿✬❊✜✛✔✷☛✰✼✪✱❋✜❊✸✪✴✪✬✰❍✿✌✣✧✪✴✫ ✣✧✶✹✦ ✰✼✪✱❋✸❃✔✪■✣✧✭✯✭❉✢✔❃✔✪✁✣❀✾✌✣✵✮✱✮❈✣❀✶✵✰✩✪✴❊✜✻✩✛✔✫ ✛✔✢✔❅ ✖✘❏❑✫❂✾✴✾✌✣❀✷✬✣✵✭✯★✔✪✴✾✬▲✩✪✴✙✸✻▼✣✧✛✔✿✴❊✜✛✔✷✹✰✩✪✳✶✬✣✧✪✁✣❀✪✴✰✩✻✩✽✜✪✬✾✴✫❂★✜✛●❋✸❃✔✪■✣✧✭✯✭ ✙✜✾✴✭✡✣✧✷✹✻✩★✔✮❉✮■✣◆✽✔▲✔▲✩✪✴✰✼▲✩✛✔✫ ✛✔✢●❖✡✷✹✿✴✾✬❅✼✷✹✰✺✲✴✣✵✪✱✫❂✛✔✭✯✰❍✭✴❅ ✰✼P✹❅while
◗✼❘ ❘ ◗✩❙for
❚✡❯ ❱✘❲❨❳✩❩✩❬✜❭✬❪✴❫❂❴✜❵●❴✔❭✴❪✌❛✵❩❄❛✧❭■❛✧❜✯❜❉❝✬❛✵❜✯❴✔❭✴❵●❞ ❡✜❢✔❢✔❳✼❭✱❢✤❛✧❣✱❞ ❛◆❤✬❡✜❭✴❝✹❳✩❵✐❛✧❤ ❤✌❛✵❭✴❫ ❛✧❥✹❞ ❳✼❭✱❫☛❳✼❵●❪✬❜✡❛✵❦✜❩❍❧✸♠✔❭■❛✧❜✯❜❉❩✔❴✔❣✱❣❈❛❀❫ ♥☛♦✜❢●❝✹❴✔❣ ❯ ❱✘♣❇❧✸❜✡❛❀❩✤❛✧❵●❭✴❳✼❩✩❬✜❭✴❪✬❫ ❴✔❵✥❴✔❭✴❪✌❛✧❩✤❛✚q✱r✸s✤t✈✉✺✇✸①✔②✜③✩④✯⑤❂⑥✜②✔⑦✌⑧✵②✔⑨✴⑥✔⑩✩❶ ❷❹❸❻❺ ❼■❽✤❾✔❿✧➀✸➀✜❺ ➁✟➂✬➃✼➄✩➅✴➃✼➆✔➂✴➃✼➆●➇✹➃✼➈✸➉ ➆✔➃✼➊✁➋✧➂✱➂✬➌✔➍➎➈✜➏✜➐ ➑✸➃✼➊f0 = 0, f1 = 1, fi+1 = fi + fi-1 för i = 1, 2, ...
26
➒✑➓✡➔→➓✡➣↕↔✌➔↕↔✎➙➜➛✁➝➜➓✁➞☎➟✝➠✁➡✔➔→↔✟➝✡➙✡➢ ➛✁➝☛➝➤↔✌➥☎➢✎➦ ➧✑➞✎➨✝➥✔➩✁➥✜↔✟➙➤➔☛➦ ➫✤➦int fibonacci(int n) { if (n <= 1) return n; else return (fibonacci(n-1) + fibonacci(n-2)); } /* n fibonacci(n) antalet funktionsanrop som läggs på stacken 1 1 1 1 2 1 3 .... 42 267914296 866988873 43 433494437 1402817465 .... */
➭✑➯✡➲→➯✡➳↕➵✌➲↕➵✎➸➜➺✁➻➜➯✁➼☎➽✝➾✁➚✔➲→➵✟➻✡➸✡➪ ➺✁➻☛➻➤➵✌➶☎➪✎➹ ➘✑➼✎➴✝➶✔➷✁➶✜➵✟➸➤➲☛➹ ➬✤➮ ➱✘✃❑❐❂❒✴❒✌❮❀❰✔Ï✴Ð✔Ñ✔Ï✌❮✵Ò✱Ò❉Ó✼Ï✁❮✧Ï✴ÓÔ❮✧Õ✜❒✬Ó✼Ï■❮✧Ö✯Ö❉Ï✴Ó✼×✩Ø✜Ï✴❒✴❐❂Ð✔Õ✥❐❂Õ✔Ö✯Ó❍❒✬×❄❮✥❮✵Õ✔Ù✬Ú✸Õ✔Û✬❮✧❒ ❰✩Ü Ñ✔Ü ❮✵Ü✼Û✹Ó✺Ò✱Ý✸Õ✔Ñ✤❮❀Þ✸Ø✜Õ✔×✩Ö✯❐ Ð✔Õ✔❒✌❮✵Õ✔Ï✴Ð✔❰✩Ó✼Õ✥ß✜à■❐ Õ✔Ó✼Þ✸Þ✸Ó✼×✩Ö✯❐ Ù✬❐ Ö✯Ó✼Ö✯Ü ➱✘á❨Ó✩×✩Ø✜Ï✬❒✴❐❂Ð✜Õ●â✴❮✧Ï✱Û✹Ð✔ã✸×❍Ò✱Ý✸Õ✔Ñ✤❮❀Þ✸ä✔Ï✴Û✹Ó✼å ❮✵Ï æ Û✹Ó✺Ú✸Ï✳Ð✜Þ✜Ö✡❮◆Ó✼Õ✔×✩å ❮✵Ï✴ÓÔ❮✧Ö✯Ö❉❒✬×✔Ï✬❐ Ù✌❮ æ å Ú✜Ö✯Ö✡❮✵Ï✬Ó▼❮✧Ö✯Ö❉Þ✸ä✔Ï✴❒✬Ö✯Ý æ å Ú✜Ö✯Ö✡❮✵Ï✬Ó▼❮✧Ö✯Ö❉Ø✜Õ✔Û✹Ó✼Ï✴â☛Ý✜å å ❮ ➱✘çèÚ✜Ï✴Þ✸ä✔Ï✱×❄❮✵Õ●Û✹Ó✼Ö❉Ù✁❮✧Ï✁❮❀Ò✱Ð✜Ö✯❐❂Ù✴Ó✼Ï✁❮✧Ö❈❮✧Ö✯Ö❈❮✧Õ✜Ù✬Ú✜Õ✜Û✬❮❀Ï✴Ó✼×✩Ø✜Ï✴❒✬❐ Ð✔Õ●Ö✯Ï✴Ð✔Ö✯❒ Û✹Ó✼Ó✼❒✴❒✳Õ✤❮✵ã✜×✩Û✹Ó✼å ❮✵Ï✴Ü