请选择 进入手机版 | 继续访问电脑版
贠老师培训群:150322713    贠老师QQ:767708506

贠老师office培训-excel学习网

 找回密码
 立即注册
点击咨询贠老师
查看: 338|回复: 5

[C语言] C语言内部函数到底是什么?

[复制链接]

3172

主题

3269

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
22691
发表于 2015-12-28 12:43:20 | 显示全部楼层 |阅读模式
内部函数(用static关键字说明)是作用域只限于说明它的源文件的函数。作用域指的是函数或变量的可见性。如果一个函数或变量在说明它的源文件以外也是可见的,那么就称它具有全局或外部作用域;如果一个函数或变量只在说明它的源文件中是可见的,那么就称它具有局部或内部作用域。

内部函数只能在说明它的源文件中使用。如果你知道或希望一个函数不会在说明它的源文件以外被使用,你就应该将它说明为内部函数,这是一种好的编程习惯,因为这样可以避免与其它源文件中可能出现的同名函数发生冲突。请看下例:

#include <stdio.h>
int open_customer_table(void);          /*global function, callable from
                                      any module  * /
static int open_customer_indexes(void); /*local function, used only in
                                        this module * /
int open_customer_table(void)
{
    int ret_code;
    /* open the customer table * /
     ......
    if (ret_code == OK)
    {
        ret_code = opcn_customer_indexes();
    }
     return ret_code;
}
static int open_customer_indexes(void)
{
     int ret_code;
     /* open the index files used for this table * /
      ......
     return ret_code;
}

在上例中,函数open_customer_table()是一个外部函数,它可以被任何模块调用,而函数open_customer_indexes()是一个内部函数,它永远不会被其它模块调用。之所以这样说明这两个函数,是因为函数open_customer_indexes()只需被函数open_customer_table()调用,即只需在上例所示的源文件中使用。
回复

使用道具 举报

7

主题

833

帖子

65

积分

注册会员

Rank: 2

积分
65
发表于 2016-1-21 22:45:18 | 显示全部楼层
大神啊!豁然开朗。。。。。。
回复 支持 反对

使用道具 举报

1

主题

1042

帖子

76

积分

注册会员

Rank: 2

积分
76
发表于 2016-1-25 17:19:04 | 显示全部楼层
这个资料非常不错,好东东!
回复 支持 反对

使用道具 举报

0

主题

903

帖子

45

积分

注册会员

Rank: 2

积分
45
发表于 2016-2-2 15:02:41 | 显示全部楼层
学习贵在坚持哦
回复 支持 反对

使用道具 举报

2

主题

920

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2018-6-3 22:52:15 | 显示全部楼层
请问大家有什么看法?我绝对喜欢这个帖子
回复 支持 反对

使用道具 举报

2

主题

1048

帖子

156

积分

注册会员

Rank: 2

积分
156
发表于 2018-10-16 19:18:15 | 显示全部楼层
大神啊!豁然开朗。。。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



陕ICP备15003731号  

贠老师培训 GMT+8, 2018-11-21 02:34 , Processed in 0.215914 second(s), 33 queries .

快速回复 返回顶部 返回列表