COLUNA 1: Então, eu sinto que tendem a escrever printf Olá mundo ou printf Olá por cento s, muitas vezes em contextos onde eu quero imprimir uma corda, por vezes, pedindo a parte do usuário do que string. Bem, não seria bom se nós criamos uma função do nosso próprio chamado, dizer, o nome de impressão, cujo propósito na vida é simplesmente para imprimir Olá vírgula assim e assim, ao aceitar o tal e tão como um argumento para essa função? Podemos declarar uma função do nosso próprio Assim como podemos em Scratch como segue. Em outras palavras, suponha que eu gostaria de printf o seu nome e, em seguida, pedir que o usuário para o seu nome com corda s é igual GetString. E então eu quero chamar uma função chamou o nome de impressão passar um s como sua entrada. Agora, infelizmente, não há nenhuma função chamou o nome de impressão em C ou em a biblioteca de CS50. Mas não importa, porque nós pode fazê-lo nós mesmos. Para declarar uma função do nosso próprio e em seguida, implementá-lo, podemos simplesmente fazer algum espaço neste arquivo e declarar esta função da seguinte forma, nula - o que significa que a função não é realmente vai devolver alguma coisa, embora terá um efeito colateral - imprimir o nome, e em seguida, vamos especificar em parênteses que o nome de impressão espera um argumento do tipo string. E, em geral, vamos pensar do que como um nome. E vamos abrir a nossa cinta e fechar a nossa cinta. E então printf dentro Olá vírgula novo nome da linha de vírgula por cento s. Em outras palavras, mesmo que isso função é apenas uma linha de código, que agora tem algum superior propósito nível para impressão o nome de alguém com uma saudação. Agora dentro do principal, perceber que eu sou chamando o nome de impressão por meio de um s. E assim me parece agora ter um programa completo. A única diferença é a partir de outros nós escrevemos é que não só faz este programa tem principal, ele também tem um declaração e implementação de Nome de impressão, em função do meu próprio. Vamos agora compilar o meu programa com o make função zero, e executá-lo com um ponto reduzir a função zero. Quando solicitado para o meu nome Vou digitar David. E eu realmente sou cumprimentado com "Olá, David." Agora, não é que eu deliberadamente declarou o nome de impressão acima principal, dizendo assim C de antemão que não existe uma função chamada de impressão nome para que eu pudesse usar que mais tarde, em principal. Agora, se eu colocar o nome em vez de impressão em Do fundo do meu arquivo, pois, sinceramente, eu provavelmente deve fazer para que os principais restos a primeira coisa que eu ou outro usuário vê no meu código, verifica-se que o meu código é não vai compilar. Especificamente, se eu voltar para o meu janela de terminal e executar fazer a função zero, agora, perceber que eu estou gritou. Se eu rolar para cima em minha janela de terminal, Eu vou ver este primeiro erro em vermelho, declaração implícita de função nome de impressão. Agora, o que isso significa? Bem, mesmo que eu tenha implementado imprimir o nome deste arquivo, eu não tenho implementada antes que eu tenho usou em principal. Agora, nós poderíamos voltar para o velho versão e nome de impressão colocar de implementação em cima. Mas posso ao invés de apenas dar uma dica C que não há uma função para vir. Especificamente, acima principal posso declarar imprimir o nome assim como fiz anteriormente, mas terminar a linha com um ponto e vírgula, assim prometendo implementar, mas ainda não realmente implementar a função chamou o nome de impressão. Posso, então, tem principal no topo da minha arquivo como eu esperava, e eu posso realmente implementar nome impresso na parte inferior. Se eu agora voltar para a minha janela de terminal e recompilar função a zero com o make, desta vez ele compila. E se eu executá-lo com a função de corte de ponto zero, proporcionando o meu nome, eu estou saudado como "Olá, David."