>> 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."