SPEAKER 1: Così mi sento come se io tendo a scrivere printf ciao mondo o printf ciao cento s abbastanza spesso in contesti dove voglio stampare un stringa, a volte chiedendo l' parte dell'utente di quella stringa. Beh, non sarebbe bello se abbiamo creato una funzione della nostra chiamata, dire, il nome di stampa, il cui scopo nella vita è semplicemente stampare ciao virgola così e così accettando il così e così come argomento a quella funzione? Possiamo dichiarare una funzione della nostra come possiamo in Scratch come segue. In altre parole, immagino mi piacerebbe printf tuo nome e poi chiedere all'utente per il suo nome con lo spago s uguale GetString. E poi voglio chiamare una funzione chiamato name stampa passando un s come input. Ora, purtroppo, non esiste una funzione chiamò stampa in C o in la biblioteca CS50. Ma non importa, perché noi può rendere noi stessi. Per dichiarare una funzione di proprio e poi attuarlo, possiamo semplicemente fare po 'di spazio in questo file e dichiarare questa funzione come segue, nulla - significa che la funzione non è in realtà andando a restituire qualcosa, anche se avrà un effetto collaterale - stampare il nome, e poi cerchiamo di specificare in parentesi il nome di stampa prevede un argomento di tipo stringa. E in generale, ci penseremo di che come un nome. E apriamo il nostro tutore e chiudere il nostro tutore. E poi printf all'interno ciao virgola nuovo nome della linea virgola per cento s. In altre parole, anche se questo funzione di una sola riga di codice, non ora hanno un po 'più alto scopo livello di stampa il nome di qualcuno con un saluto. Ora, all'interno del principale accorgo che sto chiamando il nome di stampa passando un s. E così mi sembra ora avere un programma completo. L'unica differenza dagli altri abbiamo scritto è che non solo questo programma hanno principale, ha anche un dichiarazione e l'attuazione di nome della stampa, in funzione del mio. Vediamo ora compilare il mio programma con il make funzione zero, ed eseguirlo con il punto funzione di azzeramento tagliare. Quando viene richiesto il mio nome Io digito a David. E io infatti sto salutato con "Ciao, David". Ora, si scopre che deliberatamente Nome di stampa dichiarata in precedenza principale, dicendo così C in anticipo che ci esiste una funzione chiamata stampa nome in modo che potrei usare successivamente nel principale. Ora, avevo invece mettere il nome di stampa alla il fondo del mio file, come francamente Probabilmente dovrebbe fare in modo che resti principali la prima cosa che ho o un altro utente vede nel mio codice, si scopre che il mio codice è non andare a compilare. In particolare, se torno al mio finestra del terminale ed eseguire rendono funzione a zero ora, notare che sto urlato. Se ho scorrere nella mia finestra di terminale, Vedrò questo primo errore in rosso, dichiarazione implicita di Nome funzione di stampa. Ora, che cosa significa? Bene, anche se ho implementato stampare il nome in questo file, io non ho attuato prima ho usata in principale. Ora, si potrebbe tornare al vecchio versione e il nome della stampa messo del applicazione sulla parte superiore. Ma posso invece solo dare un suggerimento C che c'è una funzione a venire. In particolare, al di sopra principale posso dichiarare stampare il nome proprio come ho fatto in precedenza, ma terminare la linea con un punto e virgola, quindi promettendo di attuare, ma non ancora l'effettiva implementazione della funzione chiamato name stampa. Posso quindi avere principale nella parte superiore del mio file come speravo, e posso effettivamente attuare nome di stampa in basso. Se ora torno alla mia finestra del terminale e la funzione di zero ricompilare con make, questa volta si compila. E se lo eseguo con funzione barra dot lo zero fornendo il mio nome, io sono salutato come "Ciao, David".