C语言学习笔记-------伊能C语言学习笔记------静态函数初步

原创 2015年12月27日 14:08:31
/*
我们知道一个大的程序不可能把所有的函数都写在一个文件里,而是要书写多个文件,那么问题来了,在另一个文件中的函数,这个文件然后调用呢??


这就是: 函数的跨文件调用问题!



C 语言规定,所有的函数,在没有static保护的情况下,都可以跨文件调用!
C语言为什么要引出外部函数和内部函数机制???


他们是为了解决什么问题而提出的???
他们各有什么特点???






像全局变量一样,如何解决由于C语言允许的跨文件调用函数机制所带来的封装性问题呢???


即:如何实现在一个文件中定义的函数只能由本文件调用呢??






static函数机制:
解决了:
 1.static  避免函数跨文件重名的问题
 2.static  避免本个源文件的函数被外部所用
 3.static加上以后,就叫内部函数,也叫静态函数
 4.C语言如果没有static,那么就可以被外部所调用
*/




#include<stdio.h>


#include<stdlib.h>


void print()
{
printf("很好很强大");


}




void  printstr(char *p)
{
printf("%s", p);   //打印字符串




}
void main()


{

print();


printstr("锄禾日当午,学C真是苦");


system("pause");


}





//另一个文件  anotherfun.c


#include<stdio.h>
#include<stdlib.h>




/*


我们知道一个大的程序不可能把所有的函数都写在一个文件里,而是要书写多个文件,那么问题来了,在另一个文件中的函数,这个文件然后调用呢??


这就是: 函数的跨文件调用问题!






像全局变量一样,如何解决由于C语言允许的跨文件调用函数机制所带来的封装性问题呢???


即:如何实现在一个文件中定义的函数只能由本文件调用呢??




*/
//print函数重名,C语言默认调用函数可以跨文件调用


static  void  print()  //内部函数,anotherfun.c之外的外部文件无法调用,只有 anotherfun.c文件内可以调用。
{
printf("china is great");
}


/*
static 限定函数作用域机制解决了:
1.由于C语言允许的跨文件调用函数机制所带来的封装性问题
2.static避免了跨文件重名的问题。





static 又叫内部函数


*/

C语言学习入们到精通之学习笔记(一)

为什么我通过博客的形式与大家分享我的学习笔记     对于c语言的学习已经有快3年之久了,对于学习嵌入式的我看来,C是我们的根本也就是我们的核心知识点,想学习好嵌入式就必须精通C语言。在一年之前我对...
  • love131452098
  • love131452098
  • 2016年05月29日 14:39
  • 1385

学习C语言入门心得笔记

当我们看到C语言是第一感觉一定是茫然的 , 那一串串字符就不知道什么意思,它又具有什么样的特点 ,到底有什么作用 C语言的特点为 a.语言简洁.方便。灵活 b.运算符丰富,范围广 c.数据类型...
  • zch0127
  • zch0127
  • 2016年09月25日 08:58
  • 598

C语言完整笔记

C语言的字符集 C语言字符集由字母,数字,空格,标点和特殊字符组成。 1.字母 小写字母a~z共26个 大写字母A~Z共26个 2.数字 0~9共10个 3.空白符 空格符、制表符、换行符等统...
  • focusjava
  • focusjava
  • 2013年08月28日 13:20
  • 3441

黑马程序员-------c语言学习笔记之基础知识储备

-------Java培训、Android培训、iOS培训、.Net培训,期待您交流--------- 一、c语言基础之关键字 c语言基础有32个关键字,这些关键字都有特殊的含义 auto doubl...
  • qq_18821687
  • qq_18821687
  • 2015年05月13日 16:50
  • 251

《手把手教你学C语言》学习笔记(1)---C语言的特点

C语言的两个知识点库和指针
  • guochaoxxl
  • guochaoxxl
  • 2017年04月22日 08:18
  • 577

C语言学习入门到精通之学习笔记(三)

基本数据类型     常量:运行过程中数据不可变     变量:运行过程中数据可被改变     标识符:如类型名、变量名、函数名     1、整型          long           4字...
  • love131452098
  • love131452098
  • 2016年06月01日 12:21
  • 558

【C语言学习笔记】一、数据类型那些事儿

关于C语言数据类型及其相关议题的一些重点记录
  • amagamag
  • amagamag
  • 2016年10月12日 00:04
  • 1193

C语言程序设计笔记(一)

1.计算机和编程语言 - 程序是用特殊的编程语言写出来表达如何解决问题的 - 不是用编程语言来和计算机交谈、而是描述要求它如何做事的过程和方法 - 辗转相除法(在数据结构中,这称为自然语...
  • fj_Author
  • fj_Author
  • 2015年06月01日 00:52
  • 994

Go语言学习笔记10

6 程序测试和文档 6.1 程序测试 1.功能测试 2.基准测试
  • u012855229
  • u012855229
  • 2016年07月14日 07:42
  • 2081

C语言学习-函数

程序设计思路: 自顶向下、逐步求精 程序结构按功能划分为若干个基本模块,形成一个树状结构 各模块间的关系尽可能简单,功能上相对独立 每一模块内部均是由顺序、选择和循环三种基本结构组成 其模块化实现的具...
  • ydpawx
  • ydpawx
  • 2016年07月18日 22:19
  • 1382
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言学习笔记-------伊能C语言学习笔记------静态函数初步
举报原因:
原因补充:

(最多只允许输入30个字)