函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main()
,所有简单的程序都可以定义其他额外的函数。
一个 C 函数由以下部分组成:
void
。语法:
返回类型 函数名称(参数列表) {
函数体
}
示例:
#include
// 函数声明
int max(int num1, int num2);
int main() {
// 局部变量声明
int a = 100;
int b = 200;
int ret;
// 调用函数以获取最大值
ret = max(a, b);
printf("最大值 : %d\n", ret);
return 0;
}
// 函数返回两个数中较大的那个数
int max(int num1, int num2) {
// 局部变量声明
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
函数声明告诉编译器函数的名称、返回类型和参数。函数声明在调用函数之前是必需的。
语法:
返回类型 函数名称(参数类型);
示例:
int max(int num1, int num2);
创建函数后,可以在任何地方调用它。
示例:
int main() {
int ret = max(100, 200);
}
函数参数允许向函数传递信息,使函数更具灵活性和功能性。以下是关于函数参数的详细介绍:
函数可以接受多种类型的参数,包括但不限于整数、浮点数、字符、字符串和指针。参数的类型必须在函数声明和定义时指定。
示例:
void printMessage(int times, char symbol);
这里,printMessage
函数接受一个整数参数 times
和一个字符参数 symbol
。
示例
// 函数定义
void display(int num) {
printf("Number: %d\n", num);
}
int main() {
int a = 5;
// 函数调用
display(a); // 'a' 是实际参数
}
这里,num
是形式参数,而 a
是实际参数。
示例:按值传递
void swap(int x, int y) {
int temp = x;
x = y;
y = temp;
}
在这个示例中,swap
函数的改变不会影响原始变量。
示例:按引用传递
void swap(int *x, int *y) {
int temp = *x;
*x = *y;
*y = temp;
}
在这个示例中,通过传递指针,swap
函数可以改变原始变量的值。
C 语言不支持默认参数。这是 C++ 提供的功能,在 C 语言中,每个参数都必须显式地传递。
C 语言支持可变数量的参数,通常通过
头文件中定义的宏来处理。
示例
#include
void printNumbers(int num, ...) {
va_list args;
va_start(args, num);
for (int i = 0; i < num; i++) {
int value = va_arg(args, int);
printf("%d\n", value);
}
va_end(args);
}
int main() {
printNumbers(3, 1, 2, 3);
}
在这个示例中,printNumbers
函数可以接受可变数量的整数参数。