189 8069 5689

忽略函数返回值c语言 c语言中函数必须有返回值否则不能使用函数

VS2019的C语言问题,scanf的为什么返回值被忽略了?我用学校机房的VC++6.0写就没问题

scanf函数的原型如下:

成都创新互联公司-成都网站建设公司,专注成都网站建设、成都做网站、网站营销推广,域名注册虚拟主机绵阳服务器托管有关企业网站制作方案、改版、费用等问题,请联系成都创新互联公司

int scanf(const char * restrict format,...);

scanf的为什么返回值被忽略的原因是你的代码中没有使用scanf的返回值。

最简答的解决方案是强制忽略返回值:

(void) scanf("%d", m);

另外一种方法是定义一个临时变量接收scanf函数的返回值。

int ret = scanf("%d", m);

这个编译器还有一个错误,它建议你不要用scanf,而是改为用scanf_s。

c语言中,如果要函数不返回值,则应把函数的类型定义为

C语言中,如果要函数不返回值,则应该吧函数的类型定义为“void”。

在将函数定义为void类型的情况下在主调函数中调用该函数,该函数调用表达式不能被用作子表达式给其他变量赋值。

void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。

扩展资料:

void类型指针要注意规则:

1、void 指针是一种特殊的指针,表示为“无类型指针”,在 ANSI C 中使用它来代替“char*”作为通用指针的类型。由于 void 指针没有特定的类型,因此它可以指向任何类型的数据。

2、void*类型只有地址信息没有类型信息,所以不能计算偏移。

3、要将void指针赋值给其他类型的指针,必须进行强制类型转换。

4、在编程中,如果函数的参数可以是任意类型指针,那么应该使用 void 指针作为函数的形参,这样函数就可以接受任意数据类型的指针作为参数。

void使用注意:

1、如果函数没有返回值,那么应声明为void类型,在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。但是许多程序员却误以为其为void类型。

2、如果函数无参数,那么应声明其参数为void。

3、void不能代表一个真实的变量

参考资料来源:百度百科-void

c语言中函数的返回值到底是什么意思,有什么用

一个函数的函数名既是该函数的代表,也是一个变量。由于函数名变量通常用来把函数的处理结果数据返回给调用函数,即递归调用,所以一般把函数名变量称为返回值,函数的返回值类型是在定义函数时指定的。

函数可以有返回值,也可以没有返回值。

1、没有返回值的函数:功能只是完成一个操作,应将返回值类型定义为void,函数体内可没有return语句。

2、有返回值的函数:函数的最后会有一个返回值return,可以用来获取该函数执行结果返回给该函数,让外部调用该函数的。

一个函数的函数名既是该函数的代表,也是一个变量。由于函数名变量通常用来把函数的处理结果数据返回给调用函数,即递归调用,所以一般把函数名变量称为返回值,函数的返回值类型是在定义函数时指定的。

扩展资料

C程序中的print函数:

是这样写的:printf("%d\n",printf("%d",printf("%d",i)));

一共有三个printf函数,我们可以使用一些代号来简化这个printf函数,如下:

代号A: printf("%d",printf("%d",i));

代号B: printf("%d",i)

则C程序代码可以简化为:printf("%d\n",A); 那么我们就先来求A。而A,又可以简化为:printf("%d",B);那么就先来求B。

B是 printf("%d",i),打印出“123”,即在C语言运行结果中,你最先看到的是123。C语言printf函数的返回值是printf实际控制输出的字符数,那么打印的123 就是3个字符,因此printf("%d",i)返回的就是3,也就是B是3。

那么,A就可以写为printf("%d",printf("%d",3));打印出3,即在运行结果中,你紧接着会看到3。

而打印出的3是1个字符,因此A就是1,那么printf("%d\n",A); 实际上就是printf("%d\n",1); 打印出1。

参考资料来源:百度百科-返回值

C语言函数返回值问题

return 0; 返回0

returm1; 返回1

如果这两句连起来用的话,返回0,后面的不会执行

函数都会有返回值,这个份两大类,一个是主函数,一个是子函数

第一大类是主函数,也就是main函数的返回值,

main也会有返回值,但是很少不会用到,一般来说大家都会忽略掉,一般来说不讨论

但是在vc等编译器中,好像是要求写的return 0,对应main函数要加类型,也就是说写主函数的时候int main(),必须写上,要不然出错

但是void main()这个可以不用,我记得好像是这样

第二大类是子函数的返回值

这个一般是两种

一个是void型的子函数,这个子函数要求不需要返回值,也就是这个函数功能不需要返回值的子函数。

这个也是有个返回值的,好像是调用成功返回非零,不成功返回零

第二种是非void型的子函数,这个函数会返回一个定义子函数时类型的一个数值

如定义int f(int m)这个就是返回一个int型的数值

值得注意的是

1、子函数返回值只有一个,不可能返回多个值。

如果需要多个返回值,有两个解决方案。一是用指针或者数组,

一个是定义子函数参数的时候用指针地址,在子函数中改变主函数变量的内容

2、在子函数中遇到return调用一定会结束子函数的调用,不管下面有多少代码

其实还有一种返回值,也就是系统自带的功能函数。也就是头文件中包含的一些函数

这个是了解内容,其实和子函数的意义一样(他也是子函数,不过不是你编写的),可以打开头文件看功能函数的定义,就知道函数的返回值是什么或者什么类型

这里值得注意的是重要的经常用到的两个函数。scanf,printf。这个百度一下很清楚

gets和puts也要注意一下,因为经常用到

返回值被忽略scanf是什么意思 返回值被忽略scanf是为什么

1、使用scanf函数时,会报错“返回值被忽略”,是因为微软认为scanf不安全导致的。

2、将使用的scanf函数替换为scanfs,好像scanf_s只有微软的编译器支持。

3、在文件的最开始添加下面一行,忽略安全检测,不然使用scanf会报错。

c语言,忽略scanf的返回值怎么解决?

试试:

将第4行改成

double x,y=0;

将第6行改成

if(scanf("%lf",x)==1x0)


新闻标题:忽略函数返回值c语言 c语言中函数必须有返回值否则不能使用函数
本文路径:http://jkwzsj.com/article/dodcpig.html

其他资讯