189 8069 5689

c语言函数返回值省略 c语言返回值被忽略怎么办

C语言 函数值类型省略 隐含返回值类型为?

函数值类型省略 隐含返回值类型为 int

成都创新互联公司从2013年创立,先为徽州等服务建站,徽州等地企业,进行企业商务咨询服务。为徽州企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

这个说法仅在C99标准前有效,C99开始要求函数返回值类型不可缺省

是不是C程序函数void可以省略

需要void的地方不可以省略void

C语法规定不写等于int(就是其实int是可以省略的, 比如long int就写成long就可以了),所以 main(){}是 int main(){}的简写(这个是符合标准的), 而不是void, 而所谓void main()是不符合标准的

所谓不写等于void估计都是谭浩强教出来的吧

c语言 函数返回类型是int时可以省略声明吗?

对于C语言来说,函数声明是可以省略的。 编译的时候只是会报一个warning.

不过VC是C++编译器,而C++中对此类情况是直接报错误的。所以编译不过。

PS, 书上说返回类型是int可以不做声明,并不是这种情况。而是在声明或者定义时可以不写int。 比如:

#includestdio.h

f();假如没有这句话

void main()

{

printf("%d",f);

}

f()

{

return 1;

}

c语言中函数返回值的问题

注意两个【规则】:

一、不要省略返回值的类型。如果函数没有返回值,应生明为void类型。

二、函数名字与返回值类型在语义上不可冲突。

eg:char c;

c=getchar();

if(c==EOF)

..................

此处getchar()是一个函数,它的返回值类型却不是char,而是int类型。起函数原型是:

int getchar(void);由于c是char类型,取值范围是【-128,,127】,万一宏EOF的值在char的 取值范围之外,那么if语句将总是失败。

【建议】

不要将正常值和错误标志混在一起返回。建议正常值用输出参数获得,而错误标志用return语句返回。

两个【提示】:

一、有时候函数原本不需要返回值,但为了增加灵活性如支持链式表达,可以附加返回值。

例如字符串拷贝函数strcpy的原型:char *strcpy(char *strDest,const *strSrc);

strcpy 函数将strSrc拷贝至输出参数strDest中,同时函数的返回值又是strDest。这样做并非多此一举。这样做并非多此一举,可以获得如下灵活性:

char str[20];

int length = strlen(strcpy(str,"hello world"));

但是注意不要将返回指针的函数作为左值,例如:

double* func(double* p)

{

return p;

}

double d = 100;

*func(d)=200;

二、如果函数的返回值是一个对象,有些场合用“返回引用”替换“返回对象值”,这样可以提高效率,而且还可以支持链式表达。而有些场合只能用“返回对象值”而不能用“返回引用”,否则会出错。

楼主顺便给你推荐两本书:高质量c/c++编程和c语言深度剖析。

C语言中main()函数是否返回值?

考虑到main函数的特殊性,lz不明白这个问题可以理解。

main()是省略了返回值类型,C语言会默认认为成main的类型为int,在main()的函数体内要返回一个值,如return 0;

而void main()的返回值是void类型,也就是说没有返回值。这样在main()的函数体内你就不用写return 0;或者return 1;之类的返回语句。

在一个程序中,可以说你看不出两者的差别,因为main()是C语言的入口点,入口点如果返回了程序也就结束了,因此C语言的这个特性似乎没用。可没用的话,C语言的设计者为什么要这么做呢?!肯定有用。

没错,前面我说的是在一个程序中,它似乎没用。可如果一个程序prog2调用另一个程序prog1的话(这里指的是prog2直接调用prog1编译好的可执行文件),那么这个特性就有用了。因为prog2要知道prog1运行之后的状态。比如你用C写了一个删除文件的程序(暂且命名为delf),然后用另一个程序去调用delf,那么调用结果怎么样啊?这个文件是否删掉了?这是int main()就会派上用场了。C语言中默认的main如果返回为0,那么这个程序调用就成功了,其他值,则为不同的错误代码。在你的delf程序中,如果那个文件删除成功,那么就在int main()中返回0,其他调用delf的程序就知道,噢,这个操作成功了。

在unix/linux系统中的很多命令都是通过这种方式获得运行结果的。

关于谭浩强的书,我想不用多说,发行量说明了一切。毕竟第二版在编写的时候还比较早,而第三版根据很多现在的需要进行了改写,内容当然会好些。鉴于lz是初学C,其实大可不必在这个问题上浪费太多时间,当你有了更多的项目经验,对这个问题会有更深刻的理解。

上面我已经给出了main()、int main()和void main()的区别,但建议lz忽略这个差别,认为成二者一样,先把C的其他部分学好。至于只写成main(),我并不推荐,就算编译器通过了,这种编程的风格也太不严谨,不利于好的习惯的养成。

在C语言的函数定义中,如果省略了return语句,函数就无法返回主调函数?

return 可以分两种情况:

1.有返回值的函数

int function1(){

return  1;    --必须要return 才能有返回值。

};

2.没有返回值的函数

void function2(){

return;    --写了return会直接跳出函数,不会继续执行下面的语句。

int a=1+1;

};

扩展资料:

被调用函数是void类型表达式最后一句写return是没有意义的,如果在表达式的最上面写return就会直接跳出函数不会执行下面的语句,。

2.被调用函数不是void类型,你肯定需要函数的返回值,比如你写一个你调用比大小的函数你肯定需要知道谁大谁小,记住函数一旦遇到 return 语句就立即返回,后面的所有语句都不会被执行到了。

参考资料

百度百科-return(C语言语句)


本文名称:c语言函数返回值省略 c语言返回值被忽略怎么办
新闻来源:http://cdxtjz.cn/article/hihges.html

其他资讯