• void func()函数和void func(void)函数的区别


    例子1:

    #include <stdio.h>
    #include <stdlib.h>
    
    void show1(int age)
    {
        printf("Age: %d\n", age);
    }
    
    void show2(char* str)
    {
        printf("Name: %s\n", str);
    }
    
    void show3(int age, int number, char* str)
    {
        printf("Age: %d\n", age);
        printf("Number: %d\n", number);
        printf("Name: %s\n", str);
    }
    
    int main(int argc, char* argv[])
    {
        typedef void (*ptr_fun)();
        ptr_fun pfunc;
        
        pfunc = show1;
        pfunc(23);
        printf("\n");
    
        pfunc = show2;
        pfunc("Jack");
        printf("\n");
    
        pfunc = show3;
        pfunc(23, 202, "Jack");
    
        return 0;
    }

    可以看到当我们定义了typedef void (*ptr_fun)();此类型的函数指针,表示它可以指向任意个数参数的函数。

    例子2:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void show()
    {
        printf("Argument count is variable!\n");
    }
    
    struct Student
    {
        int age;
        int number;
    };
    
    int main(int argc, char* argv[])
    {
        struct Student Mike = {12, 56};
    
        show(23);
        show(3, "Jack");
        show(Mike);
    
        return 0;
    }

    程序输出:

     

    可以看到输出各种类型,任意的参数都是可以的。

    例子3:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void show(void)
    {
        printf("No argument!\n");
    }
    
    struct Student
    {
        int age;
        int number;
    };
    
    int main(int argc, char* argv[])
    {
        struct Student Mike = {12, 56};
    
        show(23);
        show(Mike);
        show();
    
        return 0;
    }

    程序输出:

    这里我们可看到void show(void)不接受任何参数,调用时只能写成show()。

  • 相关阅读:
    springboot启动流程(三)Environment简介
    JavaWeb【一、简介】
    JavaJDBC【七、JDBC升级版简介】
    JavaJDBC【六、连接池】
    JavaJDBC【五、事务】
    JavaJDBC【四、存储过程的使用】
    JavaJDBC【三、增删改查】
    JavaJDBC【二、Mysql包加载与使用】
    JavaJDBC【一、概述】
    Java注解【五、注解实战】
  • 原文地址:https://www.cnblogs.com/Robotke1/p/3077496.html
Copyright © 2020-2023  润新知