linux 函数

1.怎么定义一个函数?

函数定义需要有函数类型(即函数返回值类型),函数名和函数参数。

例如定义一个函数:

int fun(int a)

{


}

即该函数额类型为int型,名为fun,有一个int型的参量a。


2.函数的定义和声明有什么关系?

函数的声明就是声称一个函数的名字,只是说明一个函数的名字,不涉及函数的实现,即没有函数体。

函数的定义就是确定一个函数的意义,即让函数具有某一个功能。

在要使用一个自定义函数时,先要在使用它前写一个函数的定义,并放置在main函数的前面。如果函数的定义放在了main函数的后面,则需要在使用该函数前,写一个声明。

声明只要写函数的类型,函数名,函数参数即可,最后加一个分号。


3.关于形式参量和实际参数的问题

在函数定义中,函数的参数列表中各个参数是形式参量,在main函数调用该函数时,括号内输入的参数称为实际参数,传递到形式参量那里。

实际参数的类型必须和函数定义的形式参量的类型保持一致。


4.函数调用的过程。

1.通过函数名找到函数的入口地址,进入函数。

2.给形参分配内存空间。

3.进行数值传递(或者地址传递)。

4.执行函数体的语句。

5.返回函数值。

6.释放空间。


5.如何实现自定义函数返回多个值?

1).利用全局变量。

可以考虑把要返回的多个值定义为全局变量,当函数调用时,全局变量被更改,再把更改后的全局变量用于主函数中。

2).传递数组指针。

可以考虑把多个返回值作为数组元素定义成一个数组的形式,并使该数组的地址作为函数的形式参数,以传址方式传递数组参数。函数调用后,形参数组元素改变导致实参改变。

3).传递结构体指针。



6.什么是回调函数?

回调函数是一个通过函数指针调用的函数。将一个函数指针传递给另一个函数,当这个函数指针被用来调用它所指向的函数时,我们就说这个函数时回调函数。


7.什么是变参函数?

变参函数的一个典型例子就是printf函数。其函数原型为:int printf(const char*format,...)

它只有一个固定参数 format,其后是占位符“...”,表示后面的参数的个数不定。

你可能感兴趣的:(linux 函数)