C语言day10-04static和exetrn对函数-作用

pragma mark static和exetrn对函数-作用

pragma mark 概念

pragma mark 代码

“main.c”

#include <stdio.h>
#include "zs.h"
//void demo();
/**
 函数也分为内部函数 和 外部函数
 默认情况下所有的函数都是外部函数
 什么是外部函数? 可以被其他文件访问的函数 称之为 外部函数
 什么是内部函数? 只能在当前文件中访问的函数 称之为 内部函数
 */
int main()
{
    text();
//    demo();
    return 0;
}
“zs.h”
void text ();

// 在.h声明一个内部函数没有任何意义
//static void demo();

“zs.c”

#include "zs.h"
// 定义内部函数 一般用于内部函数定义的后面,而想在定义之前使用内部函数
static void demo();

// 只要在函数的返回值前面加上一个extern就可以函数变成一个外部函数,由于默认就是外部函数.\
    所以在开发中一般情况extern没人写
// 如果extern写在函数的实现中(.c文件),代表定义一个外部函数
// 如果extern写在函数的声明中(.h),代表声明一个外部函数
extern void demo()
{
    printf("text\n");
    demo();
}
void text ()
{
    printf("text\n");
    demo(); // 如果需要使用在 前面声明一下
    
}
/**
 "_demo", referenced from:
 _main in main.o
 意思是 在main.o里面没有找到 demo这个函数
 */

// 只要在函数的返回值 前面加上static就可以让函数变为内部函数,其他文件就不能访问了
// 如果static写在函数的实现中,代表定义一个内部函数
// 如果static写在函数的声明中,代表声明一个内部函数
static void demo()
{
    printf("demo\n");
}
    原文作者:liyuhong165
    原文地址: https://www.jianshu.com/p/d8bbdbb19eeb
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞