Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Declaração, tipo e retorno | Funções
Noções Básicas de C
course content

Conteúdo do Curso

Noções Básicas de C

Noções Básicas de C

1. Introdução
2. Dados
3. Operadores
4. Instruções de controle
5. Funções
6. Ponteiros

bookDeclaração, tipo e retorno

Na nossa aula anterior, você aprendeu a anatomia básica das funções:

Declaração

Antes de utilizar uma função, ela deve ser declarada. Chamar uma função antes de sua declaração resultará em um erro.

Você pode declarar toda a função simultaneamente com a sua definição (como ilustrado acima) ou usar um protótipo, o qual abordaremos como um bônus ao final deste segmento.

Tipos de funções e valores de retorno

O tipo da função informa ao compilador sobre o tipo de dados do resultado da função. Por exemplo, se nossa função calcula a soma de dois inteiros, esperamos um inteiro como resultado:

Nota

Se o tipo de uma função não for especificado, o compilador trata por padrão como sendo um int.

Uma incompatibilidade entre o tipo de dado e o tipo de retorno pode fazer com que a função (ou até mesmo todo o programa) não funcione corretamente. Veja um exemplo: vamos adicionar dois números não inteiros, mas definir a função para retornar um tipo inteiro:

Ao somar valores não inteiros, você esperaria um resultado preciso. Mas, devido à inconsistência de tipo, o resultado é errôneo.

c

Main

copy
123456789101112131415161718
#include <stdio.h> int func() { double number1 = 6.985; // not int nubmer double number2 = 231.765; // not int number double result = number1 + number2; // not int number too return result; // output of function } int main() { // Call and immediately printing the result of our function printf("Expected Result is 238.75, but result is %d\n", func()); return 0; }

Dois fatores principais contribuem para este erro:

  • Um tipo de retorno incorreto (deveria ser double);
  • Usando o especificador de formato errado (%d) na função printf() (deveria ser %f).

A versão correta seria:

c

Main

copy
123456789101112131415161718
#include <stdio.h> double func() { double number1 = 6.985; // int nubmer double number2 = 231.765; // int number double result = number1 + number2; // int number too return result; // output of function } int main() { // We immediately print the result of our function printf("Expected Result is 238.75, and result is %f\n", func()); return 0; }

Nota

O resultado de qualquer função será normalmente um valor numérico ou de texto.

Isso significa que podemos atribuir diretamente o resultado da função a variáveis/arrays ou até mesmo passá-lo a outras funções. Um exemplo disso é como utilizamos o resultado com a função printf nos cenários acima.

Nota

%f é o especificador de formato para números de ponto flutuante.

Também vale mencionar que uma função pode conter múltiplos comandos return, com cada um ativando sob condições distintas.

Você construiu a função `count`, como você a invocaria dentro da função `main`?

Você construiu a função count, como você a invocaria dentro da função main?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 2
some-alt