C语言大神,求助一下 点击:158 | 回复:2



小宇

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 46回
  • 年度积分:0
  • 历史总积分:130
  • 注册:2018年12月08日
发表于:2019-02-28 23:07:25
楼主

这个,不明白,为什么调用函数后面可以是(void),void是表示什么都不传送吗?

那么调用函数后面()空的,表示什么意思bandicam 2019-02-28 21-52-38-478.jpg




yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2019-03-01 10:13:42
1楼

其实对于函数名()这种用法程序员存在一种误解,其实这种写法表示这个函数可以使用可变参数列表。


例如:

#include <stdio.h>

 

void fnc(void) {

    puts("void parameter list");

}

 

void fnc_1(unsigned short n) {

    printf("%hx\n", n);

}

 

void fnc_2(unsigned int n0, unsigned int n1) {

    printf("%x %x\n", n0, n1);

}

 

int main(void) {

    void (* ptr_fnc)(); //可变参数列表

 

    ptr_fnc = fnc;

    ptr_fnc();

 

    ptr_fnc = fnc_1;

    ptr_fnc(0x1);

 

    ptr_fnc = fnc_2;

    ptr_fnc(0x2, 0x3);

 

    return 0;

}


因此,如果明确没有参数的话,应该使用函数名(Void)的方式。


HAVE FUN!

小宇

  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 46回
  • 年度积分:0
  • 历史总积分:130
  • 注册:2018年12月08日
发表于:2019-03-01 23:20:17
2楼

回复内容:

对: yuanle 其实对于函数名()这种用法程序员存在一种误解,其实这种... 内容的回复!

-------------------------

好的,谢谢了!明白了


热门招聘
相关主题

官方公众号

智造工程师