EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 行者~ABC 于 2019-11-20 14:41 编辑 7 g7 z/ L {, Q) B5 P; b
" E$ x; c! d. o2 l/ W: L5 B函数概念 面向过程对象模块的基本单位,以及对应各种组合,函数指针,指针函数
5 v: X! H" i! L一个函数就是一个业务逻辑块,是面向过程,单元模块的最小单元,而且在函数的执行过程中,形参,实参如何交换数据,如何将数据传递出去,如何设计一个合理的函数,不单单是解决一个功能,还要看是不是能够复用,避免重复造轮子。
7 i+ O0 j8 C! e& X* f- Q4 `, F. X函数指针和指针函数,表面是两个字面意思的互换实际上含义截然不同,指针函数比较好理解,就是返回指针的一个函数,函数指针这个主要用在回调函数,很多人觉得函数都没还搞明白,回调函数更晕菜了。其实可以通俗的理解指向函数的指针,本身是一个指针变量,只不过在初始化的时候指向了函数,这又回到了指针层面。没搞明白指针再次深入的向前走特别难。 . G: _) G5 e' O3 L. W/ e p0 ~
, _& W/ E% l5 S. P1 l+ b( N
! F" M- I$ J0 z9 ]% IC语言的开发者们为后来的开发者做了一些省力气的事情,他们编写了大量代码,将常见的基本功能都完成了,可以让别人直接拿来使用。但是那么多代码,如何从中找到自己需要的呢?将所有代码都拿来显然是不太现实。
+ Z% s& U$ }8 W2 e" V9 G4 T4 j! O
$ h# G2 L9 }1 |1 u: b4 u但是这些代码,早已被早期的开发者们分门别类地放在了不同的文件中,并且每一段代码都有唯一的名字。所以其实学习C语言并没有那么难,尤其是可以在动手锻炼做项目中进行。使用代码时,只要在对应的名字后面加上( )就可以。这样的一段代码就是函数,函数能够独立地完成某个功能,一次编写完成后可以多次使用。) {7 o6 S; R# S4 J" \7 i& X
, `0 R9 L- o* S7 g9 z: f
很多初学者可能都会把C语言中的函数和数学中的函数概念搞混淆。其实真相并没有那么复杂,C语言中的函数是有规律可循迹的,只要搞清楚了概念你会发现还挺有意思的。: a7 R$ n; [4 q7 B& [! V
函数的英文名称是 Function,对应翻译过来的中文还有“功能”的意思。C语言中的函数也跟功能有着密切的关系。
1 ^! m3 D# F% }/ }) @* \) M8 K+ K& `- c7 y: |
我们来看一小段C语言代码:5 |1 l/ Y$ s: E' i1 C- v* ?
#include<stdio.h>int main(){puts("Hello World");return 0;}+ x4 m3 `. G& D8 u- o. p) X$ a6 Q
把目光放在第4行代码上,这行代码会在显示器上输出“Hello World”。前面我们已经讲过,puts 后面要带( ),字符串也要放在( )中。* @( ~6 [# \& z8 I% v
' h7 S* H. @" z8 x/ H T在C语言中,有的语句使用时不能带括号,有的语句必须带括号。带括号的就是函数(Function)。 T; I8 L8 H4 R' m/ f
: U6 K& D, u; X, X% f1 r" `. XC语言提供了很多功能,我们只需要一句简单的代码就能够使用。但是这些功能的底层都比较复杂,通常是软件和硬件的结合,还要要考虑很多细节和边界,如果将这些功能都交给程序员去完成,那将极大增加程序员的学习成本,降低编程效率。# j, x: r( k4 q1 v0 ]1 q
# Q- K% e3 k3 p7 P) X7 j% k, V
有了函数之后,C语言的编程效率就好像有了神器一样,开发者们只需要随时调用就可以了,像进程函数、操作函数、时间日期函数等都可以帮助我们直接实现C语言本身的功能。+ ]( B9 @6 M$ P V+ o7 L
2 v$ D2 b. _" M! H w2 K, W
C语言函数是可以重复使用的。
4 G( c$ `4 }2 q* v' q0 Y, z4 E! [/ D6 N; r, S& l3 m
函数的一个明显特征就是使用时必须带括号( ),必要的话,括号中还可以包含待处理的数据。例如puts("尚观科技")就使用了一段具有输出功能的代码,这段代码的名字是 puts,"尚观科技" 是要交给这段代码处理的数据。使用函数在编程中有专业的称呼,叫做函数调用(Function Call)。
' o1 a& R5 V8 N) t7 x7 Q
% o; a( _# ^" p8 n" \. T5 Y& W# @+ ? F如果函数需要处理多个数据,那么它们之间使用逗号,分隔,例如:
# q* q& E5 ?9 y- v: Ipow(10, 2);2 Q3 x; l# m* W' n* r
该函数用来求10的2次方。
* x4 D9 \2 r$ a6 Z, V8 z
/ q Z3 H/ F( e9 G( ~, d) X6 d$ ^好了,看到这里你有没有觉得其实C语言函数还是比较有意思的,而且并没有那么复杂困难。以后再遇到菜鸟小白的时候,你一口一个C语言的函数,说不定就能当场引来无数膜拜的目光。
( n2 J: F Q% g6 W \# G6 [ |