函数

函数

定义

**函数:**函数是C语言里面的功能单位,实现一个功能可以封装一个函数来实现。

返回值类型 函数名(形参 // 可以没有){
	函数体
	return 返回的数据 // 可以没有
}

声明

对已经定义的函数进行说明,函数的声明可以声明多次。

为什么要声明?
有些情况,如果不对函数进行声明,编译器在编译的时候,则不认识这个函数。
因为编译器在编译c程序的时候是从上往下进行编译的。

什么时候需要声明?

  • 主调函数和被调函数在同一个.c文件的时候;
    1) 主调函数在下,被调函数在上,这种情况不需要声明。
    2) 主调函数在上,被调函数在下,这种情况需要声明。
    • 直接声明法
      将被调用函数的第一行拷贝过去,后面加分号;
      #include <stdio.h>
      #include <stdlib.h>
      
      // 声明函数
      int add(int a, int b);
      
      int main()
      {
        printf("10 + 5 = %d", (add(10, 5)));
        system("pause");
        return 0;
      }
      
      int add(int a, int b)
      {
        return a + b;
      }
      
    • 间接声明法
      将被调用的函数的声明放在头文件中,前面加extern ,.c文件包含头文件即可。
      hello.h
      extern int add(int a,int b);
      hello.c
      #include <stdio.h>
      #include <stdlib.h>
      #include "hello.h"
      
      int main()
      {
          printf("10 + 5 = %d", (add(10, 5)));
          system("pause");
          return 0;
      }
      
      int add(int a, int b)
      {
          return a + b;
      }
      
  • 主调函数和被调函数不在同一个.c文件的时候;
    • 直接声明法
      将被调用函数的第一行拷贝过去,后面加分号,前面加extern ;
      world.c
      #include <stdio.h>
      
      void printName(){
          printf("world");
      }
      
      hello.c
      #include <stdio.h>
      #include <stdlib.h>
      #include "hello.h"
      
      // 直接声明
      extern void printName();
      
      int main()
      {
          // 调用外部声明的方法
          printName();
          system("pause");
          return 0;
      }
      
    • 间接声明法
      将被调用的函数的声明放在头文件中,前面加extern ,.c文件包含头文件即可。
      hello.c
      #include <stdio.h>
      #include <stdlib.h>
      #include "world.h"
      
      
      int main()
      {
          // 调用外部声明的方法
          printName();
          system("pause");
          return 0;
      }
      
      world.h
      extern void printName();
      
      world.c
      #include <stdio.h>
      
      void printName(){
          printf("world");
      }
      
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值