为什么我们需要无效功能有什么理由吗?
出于同样的原因,int main()
是一个标准,为什么不从一个不需要返回值的函数返回0
?我发现使用int
类型有三个直接优势:
我们可以返回一个代码来指示功能状态;通常,如果出现问题,我们可以返回非零错误代码
2.调试时我们可以输出函数的返回值
它是main()例程的标准;也就是int main() {}
。为什么不跟风呢?
我们之所以更喜欢void
而不是int
吗?
示例:对奶酪数组进行排序并通过引用返回的函数。
#include <iostream>
#include <string.h>
int sortArrayInt(string & _cheese[]) { // pun intended ;D
int errCode = 0;
try {
// ..sort cheese[] array
} catch(e) {
errCode = 1;
}
return errCode;
}
void sortArrayVoid(string & _cheese[]) {
// .. sort cheese[] array
// no return code to work with, doesn't follow int main() standard, and nothing to output.
}
int main() {
string cheese[5] = {"colby","swiss","cheddar","gouda","brie"};
std::cout << "Sort Status: " << sortCheeseArrayInt(cheese) << std::endl;
sortArrayVoid(cheese);
// ..print cheese array
}
OUTPUT:
Sort Status: 0
brie, cheddar, colby, gouda, swiss
答案 0 :(得分:10)
当函数业务逻辑不需要时,没有理由返回整数。不这样做的原因如下:
答案 1 :(得分:1)
在c / c ++中,如果你不需要使用它,就不应该付钱。
如果你需要返回int,你将返回int并支付它,否则不返回(void)并且不支付任何费用。
另请注意这样的功能:
int itoa(const char * str) {}
实际上无法报告错误,因为0和-1是有效的返回值。
从函数式语言的角度看,如果函数返回值这是一个经典函数,如果不是这个程序,那么目的就是一些副作用。这种区别在命令式语言中也很有用。
答案 2 :(得分:0)
Main返回int因为调用者(执行环境)也需要它吗?为什么假设程序应该或不应该返回值?
没有什么可以阻止你声明你的函数返回一个值而不是使用那个值。但这对于呼叫者来说并不好读。将函数显式声明为void会告诉调用者此函数不返回任何内容。这允许调用者相应地表现并且不需要存储或担心返回值。有一种适当的机制可以捕获c ++中的错误行为,它被称为“异常处理”。
答案 3 :(得分:0)
C ++的主要设计目标之一是避免让人们为某些他们不需要的东西买单,因为有人可能需要它。如果你有一个函数返回和int:
int foo(){
return 0;
}
您需要放置一个return语句,并且需要将返回值复制到调用者。当然,人们可以想到一种避免这种情况的机制,并且仅仅是void
返回类型。
答案 4 :(得分:0)
在编程逻辑中,函数有四种不同的类型。重点是只有一个功能只做你需要做的事情,仅此而已。如果你有它做额外的事情,这会导致错误和安全漏洞。
什么也不做,然后回归。这对于获取已设置的数据非常有用。
int func(){
return 1;
}
拿一些东西,什么也不返回。这对于高级作业或cout()这样的过程很有用,它会占用一些东西,但不会返回任何内容。
void func( param ){
}
拿东西然后归还一些东西。这适用于处理,例如添加到某个内容或修剪此字符串。
int func ( param ) {
return 1;
}
什么也不做,什么也不返回。这很适合设置标志或做视觉效果。
void func ( ) {
}