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

  3、函数的参数是数组:

    

点击查看代码
#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修饰函数时,该函数不能被其他文件访问。

posted @ 2022-06-23 17:26  皆为过客  阅读(17)  评论(0)    收藏  举报