C语言学习笔记:14_内部函数和外部函数

/*
 * 14_内部函数和外部函数.c
 *
 *  Created on: 2015年7月5日
 *      Author: zhong
 */

#include <stdio.h>
#include <stdlib.h>
/**
 * 所谓的外内部函数:是根据函数能否被其他源谁的调用来区分的;
 * 一:内部函数:在函数定义时前面加个static (c语言的这个静态函数和java的static方法就差太远了)
 * 		如果一个函数只能被本文件中其它函数调用,它称为内部函数,又叫静态函数
 * 		只需要在定义和函数时在前面加个 static关键字即可,这说就可以将这个函数的作用域限制在本文件中。和java的private方法修色符一样的效果。
 *	 如:static int max(int a,int b){}
 *	 	这样不但限制了作用域问题,还有就是在相同工程中的不同文件中可以定义相同名称的函数名,互不干扰
 *
 *
 *二:外部函数:在函数定义时前面加个extern,当然这个extern关键字是可省略的,就是平时定的普通默认的函数
 *   如: extern int fun(int a,int b){}
 *
 *   在本文件中调用其它文件的外部函数时,需要对外部函数声明(当然本文件中调用也是要对函数原型进行声明的)。在此函数声明时,要加关键字extern
 *
 *
 *
 */

//定义内部函数(静态函数)
static int max_(int a,int b){
	return a>b?a:b;
}

//普通的函数(外部函数)
extern int fun(){ //extern可省略

}

int main() {
	    extern void character_int_out_put();//引用 “02_输入输出函数.c”文件中的函数,先对其进行声明,要不会警告,但不报错
		character_int_out_put(); //调用

//	system("pause");
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-01 05:12:36

C语言学习笔记:14_内部函数和外部函数的相关文章

梓益C语言学习笔记之常用链表操作函数

一.创建链表 void link_creat_head(STU **p_head,STU *p_new) { STU *p_mov=*p_head; if(*p_head==NULL) //当第一次加入链表为空时,head执行p_new { *p_head=p_new; p_new->next=NULL; } else //第二次及以后加入链表 { while(p_mov->next!=NULL) { p_mov=p_mov->next; //找到原有链表的最后一个节点 } p_mov-

R语言学习笔记

參考:W.N. Venables, D.M. Smith and the R DCT: Introduction to R -- Notes on R: A Programming Environment for Data Analysis and Graphics,2003. http://bayes.math.montana.edu/Rweb/Rnotes/R.html 前言:关于R 在R的官方教程里是这么给R下注解的:一个数据分析和图形显示的程序设计环境(A system for data

初探swift语言的学习笔记四(类对象,函数)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/29606137 转载请注明出处 假设认为文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! swift扩展了非常多功能和属性,有些也比較奇P.仅仅有慢慢学习,通过经验慢慢总结了. 以下将初步学习一下类的写法. 码工,最大爱好就是看码,而不是文字,太枯燥. // // computer.swift // swiftDemo // // C

Go语言学习笔记十三: Map集合

Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. Go语言中Map的写法比Java简单些,比Python繁琐. 定义Map var x map[string]string x : = make(map[string]string) 写法上有些奇怪,map为关键字,右侧中括号内部为key的类型,中括号外部为value的类型.一般情况下使用逗号或者冒号

Perl语言学习笔记 9 正则表达式处理文本

1.替换 s/PATTERN/REPLACE/; #返回是否替换成功的布尔值 可以使用捕获变量,如:s/(\w)/$1/ 匹配失败则不做任何处理 2.定界符 对于没有左右之分的定界符,重复三次即可,如:s///.s### 对于有左右之分的定界符,需使用两对,一对包含模式,一对包含替换字符串,这两对可以不一样,如:s{}{}.s[]{}.s<>[] 3.可选修饰符 /g可进行全局替换,替换所有匹配到的字符串,如:s/ / /g /s:使得 . 匹配所有字符 /i:大小写无关 4.绑定操作符 $f

Perl语言学习笔记 6 哈希

1.哈希的键是唯一的,值可以重复! 2.访问哈希元素 $hashname{"$key"};#哈希为大括号,数组为方括号,键为字符串 $family_name{"fred"} = "firstd";#给哈希元素赋值 3.哈希键支持任意表达式 $foo = "na"; $family_name{$foo."me"};#获取$family_name{"name"}对应的值 4.访问整个哈希 %

JavaScript--基于对象的脚本语言学习笔记(二)

第二部分:DOM编程 1.文档象模型(DOM)提供了访问结构化文档的一种方式,很多语言自己的DOM解析器. DOM解析器就是完成结构化文档和DOM树之间的转换关系. DOM解析器解析结构化文档:将磁盘上的结构化文档转换成内存中的DOM树 从DOM树输出结构化文档:将内存中的DOM树转换成磁盘上的结构化文档 2.DOM模型扩展了HTML元素,为几乎所有的HTML元素都新增了innerHTML属性,该属性代表该元素的"内容",即返回的某个元素的开始标签.结束标签之间的字符串内容(不包含其它

R语言学习笔记2——绘图

R语言提供了非常强大的图形绘制功能.下面来看一个例子: > dose <- c(20, 30, 40, 45, 60)> drugA <- c(16, 20, 27, 40, 60)> drugB <- c(15, 18, 25, 31, 40) > plot(dose, drugA, type="b") > plot(dose, drugB, type="b") 该例中,我们引入了R语言中第一个绘图函数plot.pl

Go语言学习笔记(一) : 搭建Windows下的Go开发环境

最近突然对Go语言产生了兴趣,主要是因为在使用python的时候遇到了一些不爽的问题,然后发现了Go.Go是Google出的一个动态语言,语法和C++接近,性能也非常的好,而且还支持编译成exe发布,并且不依赖任何虚拟机(其实是打包在exe里面了),这种好语言怎么能够错过?所以便一时兴起,开始学习了起来.由于本人还处于异常小白的阶段,所以文章中可能不免有些错误,欢迎大家各种指正. 安装Go 前往Go语言的官方网站:http://golang.org/, 下载对应平台的安装包.如果是x86的系统可