成都网站建设设计

将想法与焦点和您一起共享

c语言给函数默认值,c语言函数参数默认值

C语言函数的默认参数

C语言中没有参数默认值的概念,但其实可以利用宏来模拟参数的默认值;

创新互联公司2013年成立,是专业互联网技术服务公司,拥有项目成都做网站、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元鲁甸做网站,已为上家服务,为鲁甸各地企业和个人服务,联系电话:18982081108

我们之前介绍过可变参数宏与逗号运算符,将两者相结合的话可以定义出以下形式的宏:

当在 func() 里不填写任何内容的时候,正常情况下宏展开后会是 func((default,)) ,但由于 ##__VA_ARGS__ 会将前面多余的逗号忽略,所以宏展开后就相当于 __func((default)) ;

当在 func() 括号里填写有效值的时候,根据逗号运算符的值等于最后一个表达式的值的性质,宏会被展开为 __func((##__VA_ARGS__)) 既 default 被丢弃,传入的值只有我们填写的内容,通过这个技巧我们就可以设计出一个带有默认参数的函数。

示例:

定义一个函数默认参数为 0xff ,不传任何参数的时候打印 0xff ,传入有效值的时候就打印我们传入的内容;

输出:

C语言中定义int变量,默认值是多少

如果是定义的全局变量或者静态变量,未初始化的话就是0.如果是局部变量,那就是以前残留在堆栈里的随机值。

区分变量的类型,有两种情况。

1、局部变量。

局部变量在没有显式初始化时,其值C语言规范没做要求,可以是随机值,也可以是编译器随意给定的值。

比如gcc编译器的局部变量就是随机值,可能为任何值。而微软的编译器,如VC或VS,则会初始化为全c,即0xCCCCCCCC。

2、全局变量或静态局部变量。

所有的全局变量,即定义在函数外的变量,默认值为0。

所有的静态局部变量,即定义在函数内部的static int name形式的,默认初始化为0。

扩展资料:

int是一种数据类型,在编程语言(C、C++、C#、Java等)中,是用于定义整数类型变量的标识符。

目前在一般的电脑中,int占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1]

在之前的微型机中,int占用2字节,16比特,数据范围为-32768~32767[-2^15~2^15-1]

定义方法:

int i;//定义整形变量i

int i=1;//定义整形变量i并初始化为1

定义常量:

const int i;//编译错误,因为常量需要给予一个初值

const int i=1;//定义常量i,值为1

Java定义常量:

final int i=1;//定义常量i,值为1

参考资料来源:百度百科-INT (数据类型)

在C语言中函数的默认参数类型

  在许多c语言初学者中编写函数时,都喜欢将无参函数中的参数类型忽略。

  但是实际上 默认的参数类型 不是无参 void ,而是接受 任意数量和类型的参数 。也就是说 int func() 和 int func(void) 是不一样的。下面通过一个例子加深了解一下在C语言中函数的默认参数类型:

  所以说,在使用c语言编写无参函数时,一定要把 void 写上去,不然会有安全隐患。

c语言(注意不是C++)函数能不能设置默认值

C语言不支持默认参数,不过可以用宏来模拟:

//---------------------------------------------------------------------------

#include stdio.h

#define DEFAULT 40 /*默认参数值*/

#define FUN(A) fun(#A##"-") /*用于实现默认参数的宏*/

int f(int n) /*用于实验默认参数的函数*/

{

return printf("%d\n",n);

}

int fun(const char *a) /*确定函数调用的函数,返回值类型要和实际需要调用的f()函数返回值类型一致*/

{

int n; /*变量的类型要和f()函数参数的类型一样*/

if (a[0]=='-') n=DEFAULT;

else sscanf(a,"%d",n);

return f(n);

}

int main(void)

{

FUN();

FUN(67);

return 0;

}

//---------------------------------------------------------------------------

C语言函数形参初始值?

可以这样调用。

int b=0指的是默认参数,调用时传入或不传入b都行,如果不传入b的话,那么b的值就是0。

另外注意只有最后面的参数可以是默认参数。


当前名称:c语言给函数默认值,c语言函数参数默认值
当前URL:http://chengdu.cdxwcx.cn/article/dsegiop.html