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语言学习笔记 -- 大Z的C语言授课笔记

  • 2010年07月01日 23:44
  • 209KB
  • 下载

c语言学习笔记,好东西

  • 2009年05月16日 11:06
  • 3KB
  • 下载

C语言学习笔记 C语言学习笔记

  • 2010年10月25日 16:07
  • 4.34MB
  • 下载

C语言学习笔记C语言学习笔记C语言学习笔记

  • 2010年03月28日 09:58
  • 124KB
  • 下载

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

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

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

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

C语言学习笔记变量数组指针

  • 2010年08月25日 23:31
  • 116KB
  • 下载

C语言WinSock学习笔记

  • 2008年03月03日 09:30
  • 32KB
  • 下载

C语言学习笔记基础完整

  • 2016年08月02日 17:12
  • 8KB
  • 下载

C语言学习笔记一

十进制换算 123=1*10^2+2*10^1+3*10^0=123 二进制换算 110(2)=1*2^2+1*2^1+0*2^0=6 存储单位: Bit(位) Byte(字节):一字节有8Bit(位...
  • yangarea
  • yangarea
  • 2015-10-29 10:04:11
  • 280
收藏助手
不良信息举报
您举报文章:C语言学习笔记-------伊能C语言学习笔记------静态函数初步
举报原因:
原因补充:

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