c语言函数不定参数怎么办,c语言函数可以没有参数吗

C语言,不定参数的函数指针问题

很巧我现在正好也有实现这样函数的需求,其实就是看了C语言可变参数函数的相关资料,你就差不多知道怎么实现了。

成都创新互联是一家专业提供东兴企业网站建设,专注与成都网站设计、做网站、H5技术、小程序制作等业务。10年已为东兴众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

只不过其中有一个很重要的大坑,只要迈过去就没问题。我是试了半天才明白的:

如果参数是char或float类型,这样的参数放在可变参数部分的话,编译器是会默认把它们的类型提升为相应的“全”类型的:char提升为int,float提升为double。如果你没注意这一点就会出现错误。当然可以通过指针的类型转换来避免。

先简略地点一下,等我在CSDN博客里详细地写一写心得吧。虽然是N年前的问题估计楼主早就自己解决了,但希望能帮到其他人:)

请问c语言编写函数时不确定 参数数量时该怎么办

在函数定义的时候就必须写形参名了。声明的时候不需要,因为编译器还用不到,只要知道相应位置是个啥类型的就行了

C语言怎么实现函数不定参数

C语言中定义了va_list, va_start( ), va_arg( ), va_end( ) 这样一组宏来处理可变参数问题。

可以参考printf的声明,创建自己的实现函数。示例:

#includestdio.h

#includestdarg.h

void va_fun(int start,...)

{

va_list arg_ptr;

int nArgValue = start;

int nArgCount = 1;

va_start(arg_ptr,start);

while(nArgValue != -1)

{

printf("arg %d is:%d/n",nArgCount,nArgValue);

nArgValue=va_arg(arg_ptr,int);

++nArgCount; 

}

return; 

}

main()

{

va_fun(5,1,7,-1);

printf("................/n");

va_fun(2,4,-1);

printf("................/n");

va_fun(-1);

printf("................/n");

//va_fun(); 可变参数函数最少要有一个参数。

}

c语言问题,不定长参数

这样的输出结果是不确定的!

-------

分析:你在args函数中对不定参进行遍历,但要求最后是0时跳出循环,

显然main中的数据不符合要求,导致遍历溢出,结果难以预测。

-------

修正:

void main(){

args(1,2,0);

}

输出:

2


本文标题:c语言函数不定参数怎么办,c语言函数可以没有参数吗
标题网址:http://ybzwz.com/article/hegiip.html