1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:04,010 >> SIARADWR 1: Felly, yr wyf yn teimlo fy mod yn tueddu i ysgrifennu printf helo byd, neu printf 3 00:00:04,010 --> 00:00:08,160 helo cant s yn aml mewn cyd-destunau lle yr wyf yn awyddus i argraffu 4 00:00:08,160 --> 00:00:11,360 llinyn, weithiau yn gofyn i'r defnyddiwr rhan o'r llinyn. 5 00:00:11,360 --> 00:00:14,980 Wel, ni fyddai'n braf pe byddwn yn creu swyddogaeth ein hunain o'r enw, 6 00:00:14,980 --> 00:00:19,900 yn dweud enw print, y mae ei bwrpas mewn bywyd yn syml i argraffu helo coma 7 00:00:19,900 --> 00:00:24,560 fel-a-felly drwy dderbyn yr hyn-a-felly fel dadl â'r swyddogaeth honno? 8 00:00:24,560 --> 00:00:29,220 Gallwn ddatgan swyddogaeth ein hunain yn union fel y gallwn yn Scratch fel a ganlyn. 9 00:00:29,220 --> 00:00:35,280 >> Mewn geiriau eraill, mae'n debyg Hoffwn i printf eich enw ac yna gofyn i'r defnyddiwr 10 00:00:35,280 --> 00:00:39,470 am ei enw gyda llinyn s yn hafal i GetString. 11 00:00:39,470 --> 00:00:42,060 Ac yna yr wyf am ei alw swyddogaeth a elwir yn enw print 12 00:00:42,060 --> 00:00:44,340 pasio s fel ei mewnbwn. 13 00:00:44,340 --> 00:00:47,770 >> Nawr yn anffodus, nid oes unrhyw swyddogaeth a elwir yn enw print yn C neu mewn 14 00:00:47,770 --> 00:00:48,950 y llyfrgell CS50. 15 00:00:48,950 --> 00:00:51,220 Ond ni waeth, oherwydd ein bod yn yn gallu gwneud ein hunain. 16 00:00:51,220 --> 00:00:54,560 I ddatgan swyddogaeth ein hunain a Yna, ar waith, gallwn yn syml yn gwneud 17 00:00:54,560 --> 00:00:59,000 rhywfaint o le yn y ffeil hon ac yn datgan swyddogaeth hon fel a ganlyn, yn ddi-rym - 18 00:00:59,000 --> 00:01:01,900 arwyddo nad yw'r swyddogaeth yn mewn gwirionedd yn mynd i ddychwelyd rhywbeth, 19 00:01:01,900 --> 00:01:03,890 hyd yn oed er y bydd yn cael yn sgîl-effaith - 20 00:01:03,890 --> 00:01:08,030 Printiwch eich enw, ac yna gadewch i ni bennu yn cromfachau enw print yn disgwyl i 21 00:01:08,030 --> 00:01:09,680 dadl o'r math llinyn. 22 00:01:09,680 --> 00:01:12,180 Ac yn gyffredinol, byddwn yn meddwl o hynny fel enw. 23 00:01:12,180 --> 00:01:15,140 >> A gadewch i ni agor ein brês a chau ein brês. 24 00:01:15,140 --> 00:01:21,930 Ac yna printf y tu mewn helo coma y cant enw coma llinell newydd. 25 00:01:21,930 --> 00:01:24,570 Mewn geiriau eraill, er bod hyn swyddogaeth dim ond un llinell o god, mae'n 26 00:01:24,570 --> 00:01:27,290 Nid awr yn cael rhywfaint o uwch pwrpas lefel print 27 00:01:27,290 --> 00:01:28,950 enw rhywun gyda chyfarchiad. 28 00:01:28,950 --> 00:01:33,115 >> Bellach y tu mewn o brif, yn sylwi fy mod yn galw enw print drwy lwyddo mewn s. 29 00:01:33,115 --> 00:01:35,830 Ac felly yr wyf yn ymddangos yn awr i gael rhaglen gyflawn. 30 00:01:35,830 --> 00:01:38,650 Yr unig wahaniaeth yw gan eraill rydym wedi ysgrifennu yw nad yn unig y mae 31 00:01:38,650 --> 00:01:42,480 rhaglen hon wedi brif, mae ganddo hefyd datganiad a gweithredu 32 00:01:42,480 --> 00:01:44,740 enw print, rhaid i swyddogaeth o fy mhen fy hun. 33 00:01:44,740 --> 00:01:49,505 >> Gadewch i ni yn awr yn llunio fy rhaglen gyda gwneud swyddogaeth sero, ac yn rhedeg gyda dot 34 00:01:49,505 --> 00:01:51,080 slaes swyddogaeth sero. 35 00:01:51,080 --> 00:01:53,390 Pan ofynnir am fy enw 'N annhymerus' teipiwch David. 36 00:01:53,390 --> 00:01:55,830 Ac yr wyf yn wir wedi fy nghyfarch gyda "Helo, David." 37 00:01:55,830 --> 00:02:00,160 >> Nawr, mae'n troi allan i mi fwriadol iawn datgan enw print uwchben prif, 38 00:02:00,160 --> 00:02:03,860 a thrwy hynny yn dweud C o flaen llaw bod bodoli swyddogaeth o'r enw print 39 00:02:03,860 --> 00:02:06,930 enw er mwyn i mi ddefnyddio hwyrach yn y prif. 40 00:02:06,930 --> 00:02:11,610 Yn awr, wedi i mi yn lle hynny yn rhoi enw print yn waelod fy ffeil, fel yr wyf yn dweud y gwir 41 00:02:11,610 --> 00:02:15,310 Mae'n debyg y dylai wneud hynny mai prif olion y peth cyntaf i mi neu 42 00:02:15,310 --> 00:02:18,450 defnyddiwr arall yn gweld yn fy cod, mae'n troi allan bod fy cod yw 43 00:02:18,450 --> 00:02:19,780 ddim yn mynd i lunio. 44 00:02:19,780 --> 00:02:23,610 >> Yn benodol, os byddaf yn mynd yn ôl at fy ffenestri a rhedeg derfynell yn gwneud swyddogaeth 45 00:02:23,610 --> 00:02:26,120 sero yn awr, yn sylwi fy mod i'n yelled ar. 46 00:02:26,120 --> 00:02:30,340 Os byddaf yn sgrolio i fyny yn fy ffenestr terfynell, 'N annhymerus' gweld hyn camgymeriad cyntaf mewn coch, 47 00:02:30,340 --> 00:02:33,120 datganiad ymhlyg o swyddogaeth enw print. 48 00:02:33,120 --> 00:02:34,220 >> Nawr, beth mae hynny'n ei olygu? 49 00:02:34,220 --> 00:02:37,190 Wel, hyd yn oed er fy mod i wedi rhoi ar waith Printiwch eich enw yn y ffeil hon, nid wyf i wedi 50 00:02:37,190 --> 00:02:40,080 rhoi ar waith cyn i mi i wedi ei ddefnyddio yn y brif. 51 00:02:40,080 --> 00:02:43,160 Nawr, gallem fynd yn ôl i'r hen fersiwn ac enw'r print rhoi yn 52 00:02:43,160 --> 00:02:44,450 top gweithredu i fyny. 53 00:02:44,450 --> 00:02:48,730 >> Ond gallaf yn lle dim ond rhoi awgrym C fod yna swyddogaeth i ddod. 54 00:02:48,730 --> 00:02:55,390 Yn benodol, uwchben prif gallaf ddatgan Printiwch eich enw yn union fel y gwneuthum yn gynharach, ond 55 00:02:55,390 --> 00:02:59,450 terfyn ar y llinell gyda hanner colon, a thrwy hynny addo i weithredu, ond nad ydynt eto 56 00:02:59,450 --> 00:03:02,180 mewn gwirionedd yn gweithredu'r swyddogaeth a elwir yn enw print. 57 00:03:02,180 --> 00:03:05,860 Yna gallaf gael prif ar ben fy ffeil gan fy mod yn gobeithio, ac yr wyf yn gallu mewn gwirionedd 58 00:03:05,860 --> 00:03:07,440 gweithredu enw'r print ar y gwaelod. 59 00:03:07,440 --> 00:03:12,860 >> Os wyf yn awr yn dychwelyd i fy ffenestr terfynell ac yn ail-grynhoi swyddogaeth sero gyda gwneuthuriad, 60 00:03:12,860 --> 00:03:14,390 y tro hwn mae'n casglu. 61 00:03:14,390 --> 00:03:18,240 Ac os byddaf yn rhedeg gyda swyddogaeth slaes dot sero yn darparu fy enw, rwy'n 62 00:03:18,240 --> 00:03:20,650 gyfarch fel "Helo, David." 63 00:03:20,650 --> 00:03:22,268