extern和static对函数的作用

函数也分为内部函数和外部函数

默认情况下所有的函数都是外部函数
什么是外部函数? 可以被其它文件访问的函数称之为外部函数
什么是内部函数? 只能在当前文件中范文的函数称之为内部函数
声明内部函数一般用于内部函数定义在后面, 而想在定义之前使用内部函数

static void demo();

// 只要在函数的返回值前面加上一个extern就可以让函数变为一个外部函数, 由于默认就是外部函数, 所以在开发中一般情况extern没人写
// 如果extern写在函数的实现中, 代表定义一个外部函数
// 如果extern写在函数的声明中, 代表声明一个外部函数
extern void test()
{
    printf("test printf\n");
    demo();
}
extern void test2();

extern void test2()
{
    printf("test printf\n");
    demo();
}

// 只要在函数的返回值前面加上static就可以让函数变为内部函数, 其它文件就不能访问了
// 如果static写在函数的实现中, 代表定义一个内部函数
// 如果static写在函数的声明中, 代表声明一个内部函数
static void demo()
{
    printf("demo printf\n");
}

你可能感兴趣的:(extern和static对函数的作用)