[英]Void vs Int Functions
void和int函数之间有什么不同? 我什么时候使用哪个? 只打印出消息或变量值时会无效吗? 像cout << value;
或者只是文字?
当你在其中实际进行计算时,是否使用了int?
当您不需要从函数向函数的调用者返回任何内容时,将使用void
。
例如。
void no_return_fn()
{
cout<< "This function will not return anything" << endl;
return; // returns nothing or void
}
当您必须将函数的整数值返回给函数的调用者时,使用int
例如。
int return_sum_of_integers_fn(int a, int b)
{
cout<< "This function returns an integer" << endl;
return (a + b); // returns an integer
}
你想让函数返回任何东西吗? 如果没有,那么它应该是void
。 如果你想让它返回一个int
,那么它应该是int
。 如果你想让它返回别的东西,那么它应该有一些其他的返回类型。
有些人更喜欢使用返回int的函数来指示一些错误或特殊情况。 考虑以下代码:
int print (int* ptr)
{
if (ptr == NULL)
{
return -1; // Error code.
}
std::cout << *ptr;
return 1; // Success code.
}
当你使用void时,这意味着你不希望从函数返回任何东西。 而int返回可能是函数计算的结果,或者指示返回时的状态,例如错误号或其他可以告诉您函数执行时发生了什么的事情。
就像你上面听到的那样, void
不会返回值,所以当你不需要这样做时你就可以使用它。 例如,您可以使用'void'来打印文本,但主要用于修改参数(更改您已有的内容),因此您无需返回值。
假设你要找到int c
,它是二(整数)数, a
和b
(所以a + b = c)。 您可以编写一个函数来添加这些数字并将其值分配给c
int c;
int sum (int a, int b)
{
return a+b;
}
c = sum(a,b);
使用void
,你只需要修改c
,所以不是编写c = function(arguments)
,而是使用修改c
function(c)
,例如:
int c;
void sum(int a, int b, int c)
{
c = a+b;
}
sum(a,b,c);
在最后一行之后,你拥有的' c
'等于' a
'和' b
'的总和:-)
实际上,如果您正在为托管系统编译代码,例如PC,Linux,Mac,Android,则必须这样做。 然后main必须返回int。 如果您正在为独立系统编译代码,例如嵌入式微控制器,或者如果您正在制作操作系统,那么main的返回类型可以是任何东西。
虽然如果使用int或void但不符合标准C,则不会出现错误。
另一个区别是void函数不需要在其中有一个返回:这2个代码片段是有效的,不会生成编译器警告:Snippet 1
void msg1()
{
cout<< "This is a message." << endl;
return; // returns nothing or void
}
片段2
void msg2()
{
cout<< "This is a message." << endl;
}
两者都具有相同的行为,并且不显示任何警告。
如果声明一个非void的函数并且你没有返回一个值,你的编译器可能会显示一个警告,例如“警告:函数返回非空虚时没有返回语句”。
如果显示此错误,则取决于发送给编译器的修饰符参数。
此代码非常类似于显示编译器警告,因为没有返回:
int test(){
printf("test");
}
返回void
表示没有返回任何内容。
int返回可能表示也可能不表示已执行计算(例如,可能只是返回码)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.