C言語の関数は、どのように複数の値を返しますか?
C言語では関数は1つの値しか返せませんが、ポインタや構造体を使用して複数の値を返すことができます。
- 引数のポインタで複数の戻り値を返す関数が使える。
void multipleValues(int a, int b, int *sum, int *diff) {
*sum = a + b;
*diff = a - b;
}
int main() {
int a = 5, b = 3, sum, diff;
multipleValues(a, b, &sum, &diff);
printf("Sum: %d\n", sum);
printf("Difference: %d\n", diff);
return 0;
}
- 構造体を使用する:構造体(struct)を定義し、返り値として構造体を利用することで、複数の値を返すことができます。
typedef struct {
int sum;
int diff;
} Result;
Result multipleValues(int a, int b) {
Result result;
result.sum = a + b;
result.diff = a - b;
return result;
}
int main() {
int a = 5, b = 3;
Result result = multipleValues(a, b);
printf("Sum: %d\n", result.sum);
printf("Difference: %d\n", result.diff);
return 0;
}