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

作者: liyuhong165 | 来源:发表于2016-05-08 16:24 被阅读76次

    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");
    }
    

    相关文章

      网友评论

        本文标题:C语言day10-04static和exetrn对函数-作用

        本文链接:https://www.haomeiwen.com/subject/rmvsrttx.html