C 函数声明和定义

函数声明和定义

从前面的章节中,你刚刚学习了可以通过以下方式创建和调用函数:

实例

// 创建一个函数
void myFunction() {
  printf("本段代码刚被执行!");
}

int main() {
  myFunction(); // 调用函数
  return 0;
}

亲自试一试

一个函数由两部分组成:

  • 声明:函数的名称、返回类型和参数(如果有的话)
  • 定义:函数的主体(要执行的代码)
void myFunction() { // 声明
  // 函数体(定义) 函数的主体(定义)
}

为了优化代码,建议将函数的声明和定义分开。

你经常会看到在 main() 函数上面有函数声明的 C 程序,而在 main() 函数下面有函数定义。这将使代码组织得更好,更易于阅读:

实例

// 函数声明
void myFunction();

// 主方法
int main() {
  myFunction();  // 调用函数
  return 0;
}

// 函数定义
void myFunction() {
  printf("本段代码刚被执行!");
}

亲自试一试

关于函数参数

如果我们采用函数参数章节中关于参数和返回值的例子:

实例

int myFunction(int x, int y) {
  return x + y;
}

int main() {
  int result = myFunction(5, 3);
  printf("结果是 = %d", result);
  return 0;
}
// 输出 8 (5 + 3)

亲自试一试

这样写被认为是很好的做法:

实例

// 函数声明
int myFunction(int, int);

// 主方法
int main() {
  int result = myFunction(5, 3); // call the function
  printf("结果是 = %d", result);
  return 0;
}

// 函数定义
int myFunction(int x, int y) {
  return x + y;
}

亲自试一试

函数的相互调用

只要先声明函数,就可以实现函数间的相互调用:

实例

// 声明两个函数
void myFunction();
void myOtherFunction();

int main() {
  myFunction(); // 从 main 调用 myFunction
  return 0;
}

// 定义 myFunction
void myFunction() {
  printf("myFunction 中的文本\n");
  myOtherFunction(); // 在 myFunction 中调用 myOtherFunction
}

// 定义 myOtherFunction
void myOtherFunction() {
  printf("嘿!myOtherFunction 中的文本\n");
}

亲自试一试