INTERLOCUTEUR 1: Je me sens comme j'ai tendance à écrire printf Bonjour tout le monde ou printf bonjour pour cent s souvent dans des contextes où je veux imprimer un chaîne, demandant parfois l' partie utilisateur de cette chaîne. Eh bien, ça ne serait pas bien si nous avons créé en fonction de notre propre appelé, dire, nom d'impression, dont le but dans la vie est tout simplement à imprimer bonjour virgule tant et si en acceptant la soi-and-so comme un argument à cette fonction? Nous pouvons déclarer une fonction de notre propre tout comme nous pouvons en Scratch comme suit. En d'autres termes, suppose que je voudrais printf votre nom, puis demander à l'utilisateur pour son nom avec de la ficelle s est égal à GetString. Et puis je veux appeler une fonction appelé nom d'impression passer un s comme entrée. Maintenant, malheureusement, il n'y a pas de fonction appelé nom d'impression en C ou en la bibliothèque de CS50. Mais peu importe, parce que nous peut faire nous-mêmes. Pour déclarer une fonction de notre propre et puis mettre en œuvre, nous ne pouvons tout simplement faire une certaine marge dans ce dossier et déclarer cette fonction comme suit, vide - ce qui signifie que la fonction n'est pas passe réellement à retourner quelque chose, même si elle aura un effet secondaire - imprimer le nom, et puis nous allons préciser dans parenthèses ce nom d'impression s'attend à une argument de type chaîne. Et en général, nous pensons de ce que en tant que nom. Et nous allons ouvrir notre accolade et fermer notre accolade. Et puis printf intérieur bonjour virgule nouveau nom de ligne de virgule pour cent. En d'autres termes, même si ce fonction est une seule ligne de code, il ne disposent maintenant d'supérieur fin de niveau à imprimer le nom de quelqu'un avec une salutation. Maintenant à l'intérieur de principal, remarque que je suis nom de l'appelant d'impression en passant un s. Et il me semble maintenant avoir un programme complet. La seule différence étant des autres nous avons écrit est que non seulement ce programme ont principale, il a également un déclaration et la mise en œuvre de nom d'impression, en fonction de ma propre. Compilons maintenant mon programme avec make fonction zéro, et l'exécuter avec le point réduire la fonction zéro. Lorsque vous êtes invité à mon nom Je vais taper dans David. Et je suis bien accueilli avec "Bonjour, David." Maintenant, il s'avère que je délibérément déclarée nom d'impression ci-dessus principal, ce qui indique à C à l'avance qu'il y existe une fonction appelée impression nom pour que je puisse utiliser plus tard dans le principal. Maintenant, si j'avais la place mettre le nom d'impression à le fond de mon dossier, que franchement, je devrait probablement faire de sorte que les principaux vestiges la première chose que j'ai ou un autre utilisateur voit dans mon code, il s'avère que mon code est ne va pas à compiler. Plus précisément, si je reviens à ma fenêtre de terminal et exécutez make fonction maintenant zéro, notez que je crié. Si je fais défiler dans ma fenêtre de terminal, Je vois cette première erreur en rouge, déclaration implicite de fonction nom d'impression. Maintenant, qu'est-ce que cela signifie? Eh bien, même si j'ai mis en œuvre imprimer nom dans ce dossier, je n'ai pas mis en place avant que je n'ai utilisé en principal. Maintenant, nous pourrions revenir à l'ancien la version et le nom d'impression de mettre haut jusqu'à la mise en œuvre. Mais je peux au lieu juste donner un indice C qu'il ya une fonction à venir. Plus précisément, au-dessus principal je peux déclarer imprimer le nom comme je l'ai déjà fait, mais terminer la ligne par un point virgule, ce qui promettant de mettre en œuvre, mais pas encore la mise en œuvre effectivement la fonction appelé nom d'impression. Je peux alors principal en haut de mon déposer comme je l'espère, et je ne peux réellement mettre en œuvre nom d'impression en bas. Si je reviens à ma fenêtre de terminal et recompiler la fonction zéro avec le maquillage, cette fois, il compile. Et si je le lance avec la fonction oblique point zéro fournir mon nom, je suis saluée comme "Bonjour, David."