[Powered by Google Translate] Funksies afdelings van die kode wat gebruik word binne 'n groter program om 'n spesifieke taak te verrig. Hulle is ook bekend as prosedures, subroetines, en subprogramme, aangesien hulle werklik is pas mini-programme binne programme. Selfs al is jy dalk nie opgemerk het nie, jy beslis gebruik het funksies wat reeds as jy het geprogrammeer in C. Wanneer jy skryf goed op die skerm met printf, jy eintlik die gebruik van 'n funksie met die naam printf. Net so, getint en GetString is funksies wat CS50 vir jou. As programmeerders, gebruik ons ​​funksies vir 'n aantal redes. Met funksies om algemene take te verrig soos deur skriftelik daarvoor aansoek te doen by die skerm en waarna die gebruiker om insette te lewer red ons tyd tydens programmering. Dit is nie nodig om kode te skryf om daardie dinge te doen aangesien hulle reeds vir ons gedoen het. Dit is selfs nie nodig is vir ons om te verstaan ​​presies hoe die funksies intern werk. In plaas daarvan, ons moet net weet hoe om te gebruik of skakel hulle in ons programme. Dit is ook nuttig om funksies in groter programme te skryf selfs al is jy nie van plan op die ander gebruik hulle, net om skeiding te maak tussen die groter taak op hande. Hierdie manier, jy struktuur gee aan jou kode veel soos jy wil gee struktuur aan 'n opstel, en met 'n baie groot projekte wat jy in staat stel om verskeie mense om te werk op verskillende dele op dieselfde tyd want dit is duidelik waar een persoon se werk eindig en 'n ander is begin. Funksies tipies werk op 1 of meer insette, bekend as argumente of parameters, die transformasie van die insette in 'n uitset waarde wat word dan teruggestuur. Dit is egter ook moontlik om funksies wat geen insette argumente gebruik te hê en nie terugkom nie 'n uitset. Okay, genoeg met die fluffy dinge. Kom ons neem 'n blik op 'n paar werklike funksies in C. Hier is 'n funksie genoem vierkant wat, glo dit of nie, bere die vierkant van die insette. Laat ons dissekteer die sintaksis van. Die eerste woord wat jy sien in die funksie, int, spesifiseer die teruggee-tipe van die funksie, dit is die C-tipe van die funksie se uitset. Hierdie funksie sal uitvoer, 'n waarde met tipe int. Die volgende woord wat jy sien, is die naam van die funksie, 'n vierkant in hierdie geval. Benaming funksies toepaslik is veral belangrik want dit is waarskynlik die mees sigbare dokumentasie van wat die funksie doen. Dit sou cool wees om hierdie funksie Shazam of YES te noem, maar dit sou nie vertel ons iets oor wat die funksie doen. Na aanleiding van die funksie naam kom die insette vir die funksie, die argumente. Hulle is gelys binne 'n stel hakies met beide hul soort en 'n naam te gebruik vir hulle in die liggaam van die funksie. Square neem net 1 argument, die int vierkante, wat het ek besluit om die naam te gee x. Dit eindig die funksie verklaring of prototipe. Die kode tussen krulhakies rondom die res van die funksie gemerk, dui aan die begin en einde van die funksie liggaam, die definisie van die funksie self. Vierkant is 'n redelik eenvoudige funksie. Dit is net 1 lyn, want al wat ons hoef te doen is vermenigvuldig x deur homself. Die woord terugkeer bepaal die uitset waarde en snellers die einde van die funksie. Die vierkante funksie te gebruik, moet ons die toepaslike insette te lewer en dan vang die uitset. Hier sien jy 'n paar van die maniere om dit te doen. Ons kan in 'n rou int, soos 6, of ons kan slaag in 'n veranderlike soos 'n. Let daarop dat elke keer as ons 'n beroep vierkante, ons vang die uitset in 'n veranderlike en dit dan druk. Maar ons het nie die terugkeer waarde in 'n veranderlike te stoor en druk dan. Ons kon net stuur dit direk aan printf as wat ons doen wanneer ons vierkant 10, maar dit beteken nie dat ons nie toegang het tot die terugkeer waarde van vierkantige 10 elders in die kode. Kom ons kyk na nog 'n eenvoudige voorbeeld. Hierdie tyd, sal ons som 2 dryf saam sodat ons kan sien wat 'n funksie lyk wanneer dit het 2 insette in plaas van net 1. Soos jy kan sien, dit is nie veel anders nie. Alles wat ons doen is voeg in die 2de argument, 'n float vernoem b, aan die argument lys met behulp van 'n komma om dit te skei van die eerste argument, dryf 'n. So, ons vierkant en som funksies is redelik maklik om te verstaan want hulle is gelykstaande aan funksies wat jy voorheen in wiskunde klas gesien. Nou, laat ons kyk na 'n funksie wat effens anders is. In plaas van die terugkeer van 'n waarde, dit verander 'n staat. Dit staan ​​bekend as 'n newe-effek. In hierdie program, die printf_fudd_style funksie het 'n opbrengs van die tipe wat ons nie gesien het nie voor, nietig. Void gebruik word om te sê dat 'n funksie nie iets terug. Daar is geen veranderlikes van die tipe leemte, so as jy probeer om iets terug te keer van 'n funksie soos printf_fudd_style, die vertaler sal skreeu op jou. Binne printf_fudd_style, sien ons dat terwyl die funksie is nog steeds 'n taak verrig, naamlik, skakel alle Rs Ws die punt van die funksie is om die string te verander en dit dan druk op die skerm, die verandering van die staat van die program in plaas van die terugkeer van 'n resultaat. Met behulp van hierdie funksie is baie soos die gebruik van ons vierkant en som funksies, behalwe ons slaan nie die resultaat in 'n veranderlike of gee dit af na 'n ander funksie want daar is geen gevolg van praat. Dus, wanneer ons ons Elmer Fudd program te stel en uit te voer, jy sien dat "Jy karnallie van haas!" reg om te kry getransformeer "Jy wascally Wabbit!" Ten slotte, daar is 1 meer funksie die moeite werd om te bespreek omdat jy dit te gebruik in elke C-program wat jy ooit geskryf het, hoof. Main is 'n funksie baie soos enige ander. Dit het 'n opbrengs tipe, 'n naam, 'n lys van argumente, en 'n liggaam. Die opbrengs tipe van die belangrikste is altyd 'n int, en hierdie int is wat gebruik word om die status van die program om te kommunikeer wanneer dit afwerkings. Het dit suksesvol deur te voer, of het dit vroeg eindig as gevolg van 'n fout? Terug na nul dui op 'n suksesvolle termyn, en die terugkeer van enige nie-nul waarde dui op 'n fout. Afhangende van die aard van die program wat jy skryf, terugkeer verskillende kodes vir die verskillende foute kan nuttig wees vir mense wat jou program gebruik later. Mains argumente is 'n bietjie meer ingewikkeld. Die argument lys kan leeg wees, wat ons deur die skryf van die leemte tussen die hakies dui, of u kan die lys 2 argumente: 'n int en 'n verskeidenheid van char * s. Dit word gebruik wanneer jou program beoog om te gebruik op die command line argumente oorgedra wanneer die program word begin. Die int argument is gewoonlik genoem argc, en dit is gelyk aan die lengte van die char * skikking, bekend as bevat SPASIES. Bevat SPASIES bevat die command line argumente wat in die program geslaag. In 'n ander kort, sal ons praat oor hoe om hierdie veranderlikes te gebruik om in meer detail. Vir nou, kan jy voel vry hoof óf manier te verklaar. Ek gewoonlik kies om dit uit die korter manier te skryf, met geen argumente, wanneer moontlik. Nou dat jy weet hoe om funksies uit te skryf, is jy goed op jou pad na die ontwikkeling van groter, meer komplekse programme. My naam is Nate Hardison. Dit is CS50.