EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 行者~ABC 于 2019-11-20 14:41 编辑 - p' F; Y2 J/ [, z/ \+ W: E
6 p9 y; }* E- h: `, W* s7 z函数概念 面向过程对象模块的基本单位,以及对应各种组合,函数指针,指针函数 $ L, Q- }4 K+ f0 Y$ m
一个函数就是一个业务逻辑块,是面向过程,单元模块的最小单元,而且在函数的执行过程中,形参,实参如何交换数据,如何将数据传递出去,如何设计一个合理的函数,不单单是解决一个功能,还要看是不是能够复用,避免重复造轮子。
# \: K( c& z, Z% b* [9 S U函数指针和指针函数,表面是两个字面意思的互换实际上含义截然不同,指针函数比较好理解,就是返回指针的一个函数,函数指针这个主要用在回调函数,很多人觉得函数都没还搞明白,回调函数更晕菜了。其实可以通俗的理解指向函数的指针,本身是一个指针变量,只不过在初始化的时候指向了函数,这又回到了指针层面。没搞明白指针再次深入的向前走特别难。
" X6 ^" Q9 U2 b0 Q' C7 t& Z* C4 Q" o' {" W( V8 p
3 h7 E! G# l2 H& j1 Z& G
C语言的开发者们为后来的开发者做了一些省力气的事情,他们编写了大量代码,将常见的基本功能都完成了,可以让别人直接拿来使用。但是那么多代码,如何从中找到自己需要的呢?将所有代码都拿来显然是不太现实。0 Q% W% Q4 B" i- T. \
) |+ D2 g" i9 b
但是这些代码,早已被早期的开发者们分门别类地放在了不同的文件中,并且每一段代码都有唯一的名字。所以其实学习C语言并没有那么难,尤其是可以在动手锻炼做项目中进行。使用代码时,只要在对应的名字后面加上( )就可以。这样的一段代码就是函数,函数能够独立地完成某个功能,一次编写完成后可以多次使用。5 ?# T9 A: X ~; Y; G" {
0 M" v' o) `% j. i1 K7 c9 n c. N
很多初学者可能都会把C语言中的函数和数学中的函数概念搞混淆。其实真相并没有那么复杂,C语言中的函数是有规律可循迹的,只要搞清楚了概念你会发现还挺有意思的。
; \# R9 U+ o- i2 y2 E函数的英文名称是 Function,对应翻译过来的中文还有“功能”的意思。C语言中的函数也跟功能有着密切的关系。( A$ j) S& m. [# p- d
" q$ @: h& O# Z我们来看一小段C语言代码:# Y: h( K( v5 B; j; v
#include<stdio.h>int main(){puts("Hello World");return 0;}( B( o. F$ a1 N
把目光放在第4行代码上,这行代码会在显示器上输出“Hello World”。前面我们已经讲过,puts 后面要带( ),字符串也要放在( )中。
0 [# W* W, R+ _- F7 p: G2 H( ]2 c k. H) E+ A9 V2 o/ Q! _- I
在C语言中,有的语句使用时不能带括号,有的语句必须带括号。带括号的就是函数(Function)。& c4 c4 X6 c. q |% @" |$ F3 w1 S) ^
. ?: }' N* ^5 H: H/ _. X" T+ W' p
C语言提供了很多功能,我们只需要一句简单的代码就能够使用。但是这些功能的底层都比较复杂,通常是软件和硬件的结合,还要要考虑很多细节和边界,如果将这些功能都交给程序员去完成,那将极大增加程序员的学习成本,降低编程效率。
: r- y# Z) _4 c- U" s. M' t$ y! T( H+ V! X7 A8 c, b+ w3 E
有了函数之后,C语言的编程效率就好像有了神器一样,开发者们只需要随时调用就可以了,像进程函数、操作函数、时间日期函数等都可以帮助我们直接实现C语言本身的功能。4 P: b5 {6 i3 } T" l8 \6 W
+ e% b; }! S8 i
C语言函数是可以重复使用的。
) N5 q' U7 k( H4 O. b$ W8 c2 L* h+ r( A$ e; Q* J
函数的一个明显特征就是使用时必须带括号( ),必要的话,括号中还可以包含待处理的数据。例如puts("尚观科技")就使用了一段具有输出功能的代码,这段代码的名字是 puts,"尚观科技" 是要交给这段代码处理的数据。使用函数在编程中有专业的称呼,叫做函数调用(Function Call)。; l4 } q, B3 F
/ R9 t6 v5 @( R4 W1 b( W
如果函数需要处理多个数据,那么它们之间使用逗号,分隔,例如:
- m! z; W' S" h. Gpow(10, 2);
# A) [5 w! E0 v1 T该函数用来求10的2次方。. J7 t5 h" s4 s/ w6 Y" c
3 g. \ B/ ?* O; E
好了,看到这里你有没有觉得其实C语言函数还是比较有意思的,而且并没有那么复杂困难。以后再遇到菜鸟小白的时候,你一口一个C语言的函数,说不定就能当场引来无数膜拜的目光。
8 { c9 V, G4 U- B |