Dichiarazione, Tipo e Restituzione
Dalla lezione precedente, hai appreso l'anatomia di base delle funzioni:
main.c
123456func_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
12345678int 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
12345678int 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
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 funzioneprintf()(dovrebbe essere%f).
La versione corretta sarebbe:
main.c
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.
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.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Awesome!
Completion rate improved to 2.63
Dichiarazione, Tipo e Restituzione
Scorri per mostrare il menu
Dalla lezione precedente, hai appreso l'anatomia di base delle funzioni:
main.c
123456func_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
12345678int 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
12345678int 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
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 funzioneprintf()(dovrebbe essere%f).
La versione corretta sarebbe:
main.c
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.
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.
Grazie per i tuoi commenti!