EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 行者~ABC 于 2019-11-20 14:41 编辑
" V7 O, d6 q& o1 l% l* ?
2 V8 L% V' k$ V+ ]6 {1 {函数概念 面向过程对象模块的基本单位,以及对应各种组合,函数指针,指针函数
& p: m, S5 j1 b- o' L一个函数就是一个业务逻辑块,是面向过程,单元模块的最小单元,而且在函数的执行过程中,形参,实参如何交换数据,如何将数据传递出去,如何设计一个合理的函数,不单单是解决一个功能,还要看是不是能够复用,避免重复造轮子。
% P# ~5 { y7 [# w' @+ _; M函数指针和指针函数,表面是两个字面意思的互换实际上含义截然不同,指针函数比较好理解,就是返回指针的一个函数,函数指针这个主要用在回调函数,很多人觉得函数都没还搞明白,回调函数更晕菜了。其实可以通俗的理解指向函数的指针,本身是一个指针变量,只不过在初始化的时候指向了函数,这又回到了指针层面。没搞明白指针再次深入的向前走特别难。 / F9 \4 s% g1 {1 O& {6 v6 @) p
. b! a& N$ r6 _/ s5 b& n$ a; h
( I6 ?2 K0 N& s, ^+ ^" h4 m" eC语言的开发者们为后来的开发者做了一些省力气的事情,他们编写了大量代码,将常见的基本功能都完成了,可以让别人直接拿来使用。但是那么多代码,如何从中找到自己需要的呢?将所有代码都拿来显然是不太现实。/ @+ d' E8 W) ]+ f+ Z
4 o K0 c2 O0 |" _3 E1 A2 @
但是这些代码,早已被早期的开发者们分门别类地放在了不同的文件中,并且每一段代码都有唯一的名字。所以其实学习C语言并没有那么难,尤其是可以在动手锻炼做项目中进行。使用代码时,只要在对应的名字后面加上( )就可以。这样的一段代码就是函数,函数能够独立地完成某个功能,一次编写完成后可以多次使用。- r6 k1 A9 q: i. I, V% z/ e& j
* u: z& u0 L5 V
很多初学者可能都会把C语言中的函数和数学中的函数概念搞混淆。其实真相并没有那么复杂,C语言中的函数是有规律可循迹的,只要搞清楚了概念你会发现还挺有意思的。
& f$ L* u# b/ t" y4 E! C! _函数的英文名称是 Function,对应翻译过来的中文还有“功能”的意思。C语言中的函数也跟功能有着密切的关系。4 D/ f0 f1 N7 y3 |$ G' l
( h0 F2 z% _0 [. e& e# |$ k我们来看一小段C语言代码:
6 j! e/ J- n' z- l7 T$ L: k
! x G: E, D" t7 }" |+ C8 [ #include<stdio.h>int main(){puts("Hello World");return 0;}
. v9 ]& w/ e4 {6 X4 \$ L* ^把目光放在第4行代码上,这行代码会在显示器上输出“Hello World”。前面我们已经讲过,puts 后面要带( ),字符串也要放在( )中。
1 S: p+ l2 |, `% {5 }$ s& l
1 J# b) b, A6 D: \在C语言中,有的语句使用时不能带括号,有的语句必须带括号。带括号的就是函数(Function)。
" W: A( T& X) {! l$ x
- Q7 s( O3 z! Q( `4 J. \C语言提供了很多功能,我们只需要一句简单的代码就能够使用。但是这些功能的底层都比较复杂,通常是软件和硬件的结合,还要要考虑很多细节和边界,如果将这些功能都交给程序员去完成,那将极大增加程序员的学习成本,降低编程效率。" L9 d! T0 s# k% e. V2 u; ]" R5 I
1 k2 j/ K7 k1 Z; w
有了函数之后,C语言的编程效率就好像有了神器一样,开发者们只需要随时调用就可以了,像进程函数、操作函数、时间日期函数等都可以帮助我们直接实现C语言本身的功能。- j, d I, Y+ k! y% b
" t0 V1 U4 A( V. [. S! dC语言函数是可以重复使用的。
2 ?; s! Q6 k. U2 ?* f; q. V6 R6 P7 y9 l8 k I2 [! g% w5 t4 Q' Y+ \
函数的一个明显特征就是使用时必须带括号( ),必要的话,括号中还可以包含待处理的数据。例如puts("尚观科技")就使用了一段具有输出功能的代码,这段代码的名字是 puts,"尚观科技" 是要交给这段代码处理的数据。使用函数在编程中有专业的称呼,叫做函数调用(Function Call)。; G& J: B1 w) H! `: T; q
0 j% h' V' Q9 K如果函数需要处理多个数据,那么它们之间使用逗号,分隔,例如:( x- ~. H( m( _0 b/ }. ^+ Y! w& [
pow(10, 2);
! W5 ~$ r9 _1 R4 T该函数用来求10的2次方。, N D: ` ]: a+ |5 j* C; g
2 J5 D8 d5 G* ?; z' c) s& D6 n
好了,看到这里你有没有觉得其实C语言函数还是比较有意思的,而且并没有那么复杂困难。以后再遇到菜鸟小白的时候,你一口一个C语言的函数,说不定就能当场引来无数膜拜的目光。1 N0 p+ _" M2 V+ @: J. L0 S% n/ a
|