Tagapagsalita 1: Kaya sa tingin ko ay may posibilidad na tulad kong sumulat printf kumusta mundo o printf kumusta porsiyento s medyo madalas sa konteksto kung saan ko nais na i-print ang isang string, minsan nagtatanong ang bahagi ng na string ng user. Well, Gusto hindi ito maging maganda kung lumikha kami isang katangian ng ating sariling tinatawag na, sabihin, pangalan ng pag-print, na ang layunin sa buhay ay simpleng i-print kumusta kuwit kaya-at-kaya sa pamamagitan ng pagtanggap sa gayon-at-kaya bilang isang argumento sa na pagpapaandar? Maaari naming magpahayag ng isang katangian ng ating sariling bilang lamang ng aming makakaya sa scratch tulad ng sumusunod. Sa madaling salita, ipagpalagay na nais kong printf ang iyong pangalan at pagkatapos ay tanungin ang user para sa kanyang pangalan na may string s ay katumbas ng GetString. At pagkatapos ay gusto kong tumawag sa isang function tinatawag na pangalan sa pag-print pagpasa ng mga bilang ng pag-input nito. Ngayon sa kasamaang-palad, walang pag-andar tinatawag na pangalan sa pag-print sa C o sa ang cs50 library. Ngunit hindi mahalaga, dahil kami Maaari gawin itong ating sarili. Upang magpahayag ng isang katangian ng ating sariling at pagkatapos ay ipatupad ito, maaari lang kaming magsagawa ng ilang mga kuwarto sa file na ito at ipinapahayag ito function na tulad ng sumusunod, walang bisa - signifying na ang function ay hindi talagang pagpunta upang magbalik ng bagay, kahit na magkakaroon ito isang side effect - i-print ang pangalan, at pagkatapos ay sabihin tumukoy sa panaklong na pangalan sa pag-print Inaasahan ng isang argumento ng uri ng string. At sa pangkalahatan, ipapakita namin sa tingin ng na bilang ng pangalan. At buksan ng aming suhay ipaalam at isara ang aming suhay. At pagkatapos ay sa loob printf kumusta kuwit bagong pangalan linya kuwit porsiyento s. Sa ibang salita, kahit na ito function na lamang isang linya ng code, ito ay ngayon ay may ilang mga mas mataas na antas ng layunin sa pag-print pangalan ng isang tao na may isang pagbati. Ngayon sa loob ng main, mapapansin na ako pagtawag sa pangalan ng naka-print sa pamamagitan ng pagpapasa ng isang s. At kaya ako ay tila mayroon ngayon isang kumpletong programa. Ang pagkakaiba lamang pagiging mula sa iba na naisulat namin ay na hindi lamang na pangunahing, mayroon din itong program na ito pahayag at pagpapatupad ng mga pangalan ng naka-print, isang katangian ng aking sariling. Ngayon compile ng aking mga programa na may make Hayaan function ng zero, at patakbuhin ito sa tuldok iwa function ng zero. Kapag sinenyasan para sa aking pangalan Makikita nagta-type ako sa David. At ako nga ako ay greeted may "Hello, si David." Ngayon, ito ay lumiliko out napaka ko sadya ipinahayag pangalan sa pag-print sa itaas main, sa gayong paraan ng pagsasabi C nang maaga na doon Umiiral na ang isang function na tinatawag na pag-print pangalanan nang sa gayon ay maaari ko bang gamitin ang mamaya ito sa pangunahing. Ngayon, si ko sa halip ilagay ang pangalan ng naka-print sa sa ilalim ng aking mga file, na lantaran ako marahil ay dapat gawin ito na pangunahing labi ang unang bagay na ako o nakikita ng ibang gumagamit sa aking code, ito ay lumiliko out na ang aking code ay hindi pagpunta sa sumulat ng libro. Sa partikular, kung pumunta ako pabalik sa aking terminal na window at patakbuhin ang gumawa ng function zero ngayon, mapapansin na ako yelled sa. Kung mag-scroll pataas ko sa aking terminal na window, Kukunin ko makita ito sa unang error sa pula, implicit deklarasyon ng pangalan ng naka-print na function. Ngayon, kung ano ang ibig sabihin na? Well, kahit na naipatupad ko i-print ang pangalan sa file na ito, na hindi ko na hindi ipinatupad ito bago ko nai Ginagamit ito sa pangunahing. Ngayon, maaari naming bumalik sa lumang bersyon at ilagay ang pangalan ng naka-print na ni pagpapatupad up tuktok. Ngunit sa halip ko mabibigyan lamang C isang pahiwatig na mayroong isang function na dumating. Sa partikular, sa itaas pangunahing maaari kong idedeklara i-print ang pangalan lang tulad ng ginawa ko mas maaga, ngunit tapusin ang linya na may semicolon, at sa gayon may pag-asa na ipapatupad ngunit hindi pa talaga ang pagpapatupad ng pag-andar tinatawag na pangalan sa pag-print. Maaari kong pagkatapos ay mayroon pangunahing sa tuktok ng aking maghain bilang umaasa ako, at maaari ko talaga ipatupad ang pangalan sa pag-print sa ibaba. Kung ngayon bumalik ako sa aking terminal na window at mag-recompile function na zero may make, oras na ito ito compiles. At kung tumakbo ko ito na may tuldok function na slash zero pagbibigay ng aking pangalan, ako greeted bilang "Hello, si David."