extern static和函数

#include <stdio.h>
int sum(int a, int b);
int main()
{
    /*************************************************************
     * extern static和函数
     * 函数可以分为外部函数和内部函数:
     *   外部函数:定义的函数能被本文件和其他文件访问
     *         1、 默认情况下所有函数都是外部函数
     *         2、 不允许有同名的外部函数,即就是几个不同的文件中不能出现相同名字的函数
     *   内部函数:定义的函数只能被本文件访问,其他文件不能访问
     *         1、 允许不同文件中有同名的内部函数
     *   static对函数的作用:
     *         1、 定义一个内部函数(该函数只能本文件访问static不能省略)
     *         2、 声明一个内部函数
     *   extern对函数的作用:
     *         1、 完整地定义一个外部函数
     *         2> 完整地声明一个外部函数
     *         (extern可以省略,默认情况下声明和定义的函数都是外部函数)
     *************************************************************/
     int a = 20;
     int b = 30;
     int c = sum(a, b);
     printf("extern sum(20, 30) = %d
",c);

     return 0;
}
#include <stdio.h>
static int minus(int a, int b);
//该函数可以供其他的文件访问,默认是extern
int sum(int a, int b)
{
    int c = minus(10, 5);
    printf("static minus(10, 5) = %d
 ", c);
    return a + b;
}
//该函数只能本文件进行访问
static int minus(int a, int b)
{
    return a - b;
}
static minus(10, 5) = 5
 extern sum(20, 30) = 50
原文地址:https://www.cnblogs.com/heml/p/3531764.html