嵌入式第十一篇——C语言函数
·
一、函数的基本定义
函数由返回值类型、函数名、参数列表和函数体组成:
返回值类型 函数名(参数列表) {
函数体;
return 返回值;
}
返回值类型:可以是 int、float、void(无返回值)等。
函数名:遵循标识符规则,建议见名知意(如 sum、printInfo)。
参数列表:定义输入数据的类型和名称,多个参数用逗号分隔。
函数体:包含具体的执行代码,用 {} 包裹。
示例:
int add(int a, int b) {
return a + b;
}
二、函数的调用
通过函数名和实参列表调用函数:
int main() {
int result = add(3, 5); // 调用函数
printf("%d\n", result); // 输出8
return 0;
}
实参与形参:实参的值会拷贝给形参(值传递),形参修改不影响实参。
调用顺序:若函数定义在调用之后,需提前声明函数原型。
三、函数声明
函数原型告知编译器函数的存在,格式为:
返回值类型 函数名(参数列表);
示例:
int add(int a, int b); // 声明
int main() {
int res = add(2, 3); // 调用
return 0;
}
int add(int a, int b) { // 定义
return a + b;
}
四、函数的分类
-
无参无返回值函数:
void printHello() { printf("Hello World!\n"); } -
有参无返回值函数:
void printSum(int x, int y) { printf("%d\n", x + y); } -
无参有返回值函数:
int getRandom() { return rand(); } -
有参有返回值函数:如前文的
add函数。
五、参数传递方式
-
值传递:实参值拷贝给形参,形参修改不影响实参。
void swap(int x, int y) { int temp = x; x = y; y = temp; // 仅形参交换 } -
地址传递(指针):通过指针修改实参的值。
void swap(int *x, int *y) { int temp = *x; *x = *y; *y = temp; // 实参交换 } // 调用:swap(&a, &b);
六、函数的嵌套调用
函数内部可调用其他函数,包括自身(递归):
int max2(int a, int b) {
return a > b ? a : b;
}
int max3(int a, int b, int c) {
return max2(max2(a, b), c); // 嵌套调用
}
更多推荐

所有评论(0)