C 言語でサブルーチンを呼び出す方法は?
C言語では、次の2つの方法でサブルーチンをコールできます。
- 値渡し(コール・バイ・バリュー):引数の値のコピーが仮引数に与えられ、仮引数の変更が引数の値に影響を与えない。
// 声明子函数
void func(int);
// 调用子函数
int main() {
int num = 10;
func(num); // 将num的值传递给形参
return 0;
}
// 实现子函数
void func(int num) {
// 对num进行操作
}
- コール・バイ・レファレンス: 実引数のアドレスを仮引数に渡し、子関数中で仮引数を変更すると実引数の値が変更される。
// 声明子函数
void func(int*);
// 调用子函数
int main() {
int num = 10;
func(&num); // 将num的地址传递给形参
return 0;
}
// 实现子函数
void func(int* ptr) {
// 对ptr指向的值进行操作
}
アドレス渡し参照することで実引数を変更しやすくはなりますが、渡すアドレスが有効かどうか検証を行わないと、不具合の原因となる可能性があります。