Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C 函数声明和定义


函数声明和定义

您已经在前面的章节中了解到,您可以通过以下方式创建和调用函数

示例

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

int main() {
  myFunction(); // 调用函数
  return 0;
}
亲自尝试 »

函数由两部分组成

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

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

您经常会看到 C 程序,它们将函数声明放在 main() 以上,将函数定义放在 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 x, int y);

// 主方法
int main() {
  int result = myFunction(5, 3); // 调用函数
  printf("结果是 = %d", result);
  return 0;
}

// 函数定义
int myFunction(int x, int y) {
  return x + y;
}
亲自尝试 »

函数调用其他函数

只要您先声明函数,就可以使用函数来调用其他函数。

示例

使用一个函数调用另一个函数

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

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

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

// 定义 myOtherFunction
void myOtherFunction() {
  printf("嘿!myOtherFunction 中的一些文本\n");
}
亲自尝试 »


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.