Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Declaração, Tipo e Retorno | Funções
Fundamentos de C

bookDeclaração, Tipo e Retorno

Na lição anterior, você aprendeu a anatomia básica das funções:

main.c

main.c

copy
123456
func_type func_name(arguments_placeholder) { // The core functionality of the function // The resulting outcome after function execution return function_output; }

Declaração

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

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

Tipos de Função e Valores de Retorno

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

main.c

main.c

copy
12345678
int sumFunction() { int number1 = 6; int number2 = 10; int result = number1 + number2; return result; }

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) funcione incorretamente.

main.c

main.c

copy
12345678
int sumFunction() { double number1 = 6.985; double number2 = 231.465; double result = number1 + number2; return result; // This will lead to an incorrect result }

Ao somar valores não inteiros, espera-se um resultado preciso. No entanto, devido à inconsistência de tipos, o resultado é incorreto.

main.c

main.c

copy
1234567891011121314151617
#include <stdio.h> int func() { double number1 = 6.985; // Not `int` nubmer double number2 = 231.765; // Not `int` number double result = number1 + number2; 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 esse erro:

  • Tipo de retorno incorreto (deve ser double);
  • Uso do especificador de formato errado (%d) na função printf() (deve ser %f).

A versão correta seria:

main.c

main.c

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

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

Note
Nota

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

Também é importante mencionar que uma função pode conter múltiplas instruções return, cada uma ativada sob condições distintas.

question mark

Você construiu a função count, como ela seria chamada dentro da função main?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 2

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you explain more about function prototypes?

What happens if I use the wrong return type in my function?

Can you give an example of a function with multiple return statements?

Awesome!

Completion rate improved to 2.63

bookDeclaração, Tipo e Retorno

Deslize para mostrar o menu

Na lição anterior, você aprendeu a anatomia básica das funções:

main.c

main.c

copy
123456
func_type func_name(arguments_placeholder) { // The core functionality of the function // The resulting outcome after function execution return function_output; }

Declaração

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

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

Tipos de Função e Valores de Retorno

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

main.c

main.c

copy
12345678
int sumFunction() { int number1 = 6; int number2 = 10; int result = number1 + number2; return result; }

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) funcione incorretamente.

main.c

main.c

copy
12345678
int sumFunction() { double number1 = 6.985; double number2 = 231.465; double result = number1 + number2; return result; // This will lead to an incorrect result }

Ao somar valores não inteiros, espera-se um resultado preciso. No entanto, devido à inconsistência de tipos, o resultado é incorreto.

main.c

main.c

copy
1234567891011121314151617
#include <stdio.h> int func() { double number1 = 6.985; // Not `int` nubmer double number2 = 231.765; // Not `int` number double result = number1 + number2; 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 esse erro:

  • Tipo de retorno incorreto (deve ser double);
  • Uso do especificador de formato errado (%d) na função printf() (deve ser %f).

A versão correta seria:

main.c

main.c

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

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

Note
Nota

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

Também é importante mencionar que uma função pode conter múltiplas instruções return, cada uma ativada sob condições distintas.

question mark

Você construiu a função count, como ela seria chamada dentro da função main?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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