美文网首页
C函数调用

C函数调用

作者: 追風 | 来源:发表于2016-12-20 21:26 被阅读0次

    一,产生随机数

    #include<time.h> //使用下面函数所需要的头文件
    

    srand(time(0));//初始化随机数发生器,不能放进循环,只需执行一次,也可以写为srand(time NULL); num = rand()%100; //产生0~100的随机数并赋值给num


    二,函数返回值——终端中输入echo $?查询返回值

    • 有返回值的函数函数调用结束后会返回一个数值给主函数
    • 无返回值的函数函数结束后无返回值,一般定义为void类型,即空类型

    三,函数定义

    • 函数定义
      DataType FunctionName() //没有“;”,定义的函数之间是平行的,
    • 函数声明
      DataType FunctionName(); //有“;”,若定义的函数放在被调用的前边时可以省略,即定义的函数放在后面函数被调用前需声明
    • 函数调用
      FuntionName(Value); //实参和形参类型顺序要一致
    #include<stdio.h>
    void test1()               //定义一个空类型函数,由于在函数调用之前,故可以省略声明
    {
        int i = 3;
        i +=5;
        printf("i = %d\n", i);
        scanf("%d", &i);
        printf("scanf = %d\n", i);
        return;                  //void类型函数没有返回值
    }
    int test2()                //int类型函数
    {
        int i = 0;
        int sum = 0;
        for(i = 0; i < 10;i++)
            sum +=i;
        printf("sum = %d\n", sum);
        return sum;              //sum也可以为其他int型常量
    }
    int main()
    {
        test1();
        int ret = test2();       //调用函数test2()及接受函数返回值sum
        printf("ret = %d\n", ret);
        return 0;   
    }
    

    四,auto,static,extern,register和const概念

    第一个文件

    #include<stdio.h>
    extern int test_extern();  //外部函数声明
    auto int a = 0;     //动态全局变量,auto可以省略
    int b = 1;          //动态全局变量需要定义在引用之前
    static int c = 2;   //静态全局变量需要定义在引用之前
    static int d;       //静态全局变量未赋值系统默认为0
    void test1()
    {
        int c = 3;
        printf("c = %d\n", c);
        return;
    }
    static void test2()  //表示该函数只引用于该文件,不能被其他文件调用
    {
        printf("b = %d\n", b);
        return;
    }
    void test3()
    {
        static int e = 4;   //静态变量只初始化一次
        sum +=3;
        printf("sum = %d\n", sum);
        return;
    }
    int main()
    {
        int a1 = 0;         //动态局部变量
        static int b1 = 1;  //静态局部变量
        test1();
        test2();
        test3()            //第一次调用sum=7
        test3();           //第二次调用sum=10
        test3();           //第三次调用sum= 13,上面的结果证明静态变量只初始化一次
        return 0;
    }
    

    第二个文件

    #include<stdio.h>
    extern int a;        //外部变量
    int test_extern()
    {
    a += 10;
    printf("a = %d\n", a);
    return a;
    }
    

    编译:gcc 第一个文件名 第二个文件名 -o 目标文件名

    • register:寄存器变量,直接将变量存放在寄存器中,优点速度快。缺点cpu寄存器个数有限,不可定义多个寄存器变量
    • const:
      const int num = 5; int const num = 5; const int *p; int const *p; //值不可更改 int* const p; //址不可更改 const int* const p; //值和址都不可更改
    • 指针函数: int *test(); //返回一个局部地址是不允许的,没有意义
    • 函数指针: int (*pa)();

    相关文章

      网友评论

          本文标题:C函数调用

          本文链接:https://www.haomeiwen.com/subject/vjftvttx.html