Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Dichiarazione, Tipo e Restituzione | Funzioni
Fondamenti Di C

bookDichiarazione, Tipo e Restituzione

Dalla lezione precedente, hai appreso l'anatomia di base delle funzioni:

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; }

Dichiarazione

Prima di utilizzare una funzione, è necessario dichiararla. Chiamare una funzione prima della sua dichiarazione comporterà un errore.

È possibile dichiarare l'intera funzione contemporaneamente alla sua definizione (come illustrato sopra) oppure utilizzare un prototipo, che verrà trattato come approfondimento alla fine di questa sezione.

Tipi di funzione e valori di ritorno

Il tipo della funzione informa il compilatore sul tipo di dato del risultato della funzione. Ad esempio, se la nostra funzione calcola la somma di due interi, ci aspettiamo un intero come risultato.

main.c

main.c

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

Una discordanza tra il tipo di dato e il tipo di ritorno può causare il malfunzionamento della funzione (o addirittura dell'intero programma).

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 }

Quando si sommano valori non interi, ci si aspetta un risultato preciso. Tuttavia, a causa dell'incoerenza di tipo, il risultato è errato.

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; }

Due fattori principali contribuiscono a questo errore:

  • Un tipo di ritorno errato (dovrebbe essere double);
  • Utilizzo di uno specificatore di formato errato (%d) nella funzione printf() (dovrebbe essere %f).

La versione corretta sarebbe:

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; }

Questo implica che possiamo assegnare direttamente il risultato della funzione a variabili/array o persino passarla ad altre funzioni. Un esempio di ciò è l'utilizzo del risultato con la funzione printf negli scenari sopra descritti.

Note
Nota

Lo specificatore di formato per i numeri in virgola mobile è %f.

Vale anche la pena menzionare che una funzione può contenere più istruzioni return, ciascuna attivata in condizioni distinte.

question mark

Hai creato la funzione count, come la invocheresti all'interno della funzione main?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 2

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 2.63

bookDichiarazione, Tipo e Restituzione

Scorri per mostrare il menu

Dalla lezione precedente, hai appreso l'anatomia di base delle funzioni:

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; }

Dichiarazione

Prima di utilizzare una funzione, è necessario dichiararla. Chiamare una funzione prima della sua dichiarazione comporterà un errore.

È possibile dichiarare l'intera funzione contemporaneamente alla sua definizione (come illustrato sopra) oppure utilizzare un prototipo, che verrà trattato come approfondimento alla fine di questa sezione.

Tipi di funzione e valori di ritorno

Il tipo della funzione informa il compilatore sul tipo di dato del risultato della funzione. Ad esempio, se la nostra funzione calcola la somma di due interi, ci aspettiamo un intero come risultato.

main.c

main.c

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

Una discordanza tra il tipo di dato e il tipo di ritorno può causare il malfunzionamento della funzione (o addirittura dell'intero programma).

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 }

Quando si sommano valori non interi, ci si aspetta un risultato preciso. Tuttavia, a causa dell'incoerenza di tipo, il risultato è errato.

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; }

Due fattori principali contribuiscono a questo errore:

  • Un tipo di ritorno errato (dovrebbe essere double);
  • Utilizzo di uno specificatore di formato errato (%d) nella funzione printf() (dovrebbe essere %f).

La versione corretta sarebbe:

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; }

Questo implica che possiamo assegnare direttamente il risultato della funzione a variabili/array o persino passarla ad altre funzioni. Un esempio di ciò è l'utilizzo del risultato con la funzione printf negli scenari sopra descritti.

Note
Nota

Lo specificatore di formato per i numeri in virgola mobile è %f.

Vale anche la pena menzionare che una funzione può contenere più istruzioni return, ciascuna attivata in condizioni distinte.

question mark

Hai creato la funzione count, come la invocheresti all'interno della funzione main?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 2
some-alt