C语言:函数
C语言的函数
一、函数的简介:
1、函数的定义: 函数是封装了一段用来完成特定功能的代码
2、函数的组成:
返回值类型 函数名(参数列表)
{
函数体;
}
点击查看代码
#include <stdio.h>
int add(int x,int y) //x和y是形参,add被调
{
if(x<0 || y<0)
return -1;
//int z=x+y;
//return z;
//return x+y; // return的后面可以是表达式,可以是常量,可以是变量
}
int main(int argc, const char *argv[])
{
int i=3,j=4;
#if 0
if(i<0||j<0)
printf("bu neng xiao yu 0\n");
int k=i+j;
#endif
int k=add(i,j); //i和j是实参,add主调
printf("k=%d\n",k);
return 0;
}
二、函数的特点:
1、一个函数可以有多个结束场景,也就是可以有过个return语句,但是只有一个return可以生效,而且return只能返回一个值;
2、函数可以嵌套调用
3、函数的命名规范
1》只能数字、字母、下划线组成
2》数字不能打头
3》不能使用关键字命名
4》函数名尽量起有意义
4、函数的声明
返回值类型 函数名(参数列表);
函数遵循先声明,后使用原则;
如果函数没有声明,那么函数的实现需要在函数的调用的上方;
三、函数传参:
1、函数在调用的时候,传递的参数的顺序、个数、数据类型都必须与声明、实现都一致;
2、函数参数传递的顺序;
点击查看代码
#include <stdio.h>
int fun(int x,int y)
{
printf("[%s:%d]x=%d,y=%d\n",__FUNCTION__,__LINE__,x,y);
return 0;
}
int main(int argc, const char *argv[])
{
int i=2,j=3;
fun(i=j+1 , j=i+2); //先计算传递第二个参数,然后计算传递第一个参数
int a[5];
return 0;
}
//执行结果:
//linux@ubuntu:~/c$ ./a.out
//[fun:4]x=5,y=4

点击查看代码
#include <stdio.h>
char *mystrcpy(char x[],const char y[])
{
int i=0;
while(y[i]!='\0')
{
x[i]=y[i];
i++;
}
x[i]='\0'; //mystrcpy函数结束前赋值尾0
return x;
}
int main(int argc, const char *argv[])
{
char a[]="aaa1234";
char b[30];
mystrcpy(b,a);
printf("b=%s\n",b);
return 0;
}
//执行结果:
//b=aaa1234
四、内联函数:
将一个函数定义为内联函数,需要在函数定义时加上 inline 函数修饰符。
如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方,可以提高代码运行效率。
五、static总结:
static修饰局部变量时,这个变量不会随着函数的执行结束而释放,生命周期延长到程序结束,但是局部变量的作用域不会改变。
static修饰全局变量时,该全局变量不能被其他文件访问。
static修饰函数时,该函数不能被其他文件访问。

浙公网安备 33010602011771号