void和int函数会有什么不同?我什么时候使用哪个?在输出消息或变量值时会使用void吗?像cout < <值;Void vs Int函数
或者它只是文本?
而且当你真的在里面进行计算的时候会用到int吗?
void和int函数会有什么不同?我什么时候使用哪个?在输出消息或变量值时会使用void吗?像cout < <值;Void vs Int函数
或者它只是文本?
而且当你真的在里面进行计算的时候会用到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
。如果你想让它返回其他东西,那么它应该有一些其他的返回类型。
您将返回void
表示没有任何被返回。
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
(so a + b = c)。您可以编写一个函数,它增加了这些数字,并分配给它的价值,是c
int c;
int sum (int a, int b)
{
return a+b;
}
c = sum(a,b);
在使用void
,你只会modificate c
,所以不是写c = function(arguments)
,你将有function(c)
它修改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。如果您是一个独立的系统,如嵌入式微控制器编译代码,或者如果你正在一个OS,那么主要的返回类型可以是任何东西。
但如果你使用int或无效,但根据标准C.
另一个区别它不达标是void函数不要求其内部都有一个回报不会发生错误: 这2段的代码是有效的,不产生编译器警告: 片段1
void msg1()
{
cout<< "This is a message." << endl;
return; // returns nothing or void
}
片段2
void msg2()
{
cout<< "This is a message." << endl;
}
两者都具有相同的行为并且不显示警告。
如果你声明函数非空,你不返回一个值,你的编译器可能会显示一个类似的警告“警告:在功能上没有返回语句,返回非空”。
这取决于发送,如果显示此错误或不编译修改参数。
此代码是LIKEY因为没有回报显示编译器警告:
int test(){
printf("test");
}
很多时候,我已经看到了开发人员编写,他们没有返回任何东西的功能,但他们选择了返回int和一个固定值“return 0;”。他们为什么要那样做?它是否真的有助于更大的图片? –
@NiravZaveri(晚_answer_的情况下,其他人有相同的_question_)。它仅在与其他功能保持一致的情况下才有助于“更大的图景”。例如,如果所有API函数都返回一个整数作为错误代码,则返回0是可以接受的(即使迄今为止该函数不返回任何错误代码)。如果您要更改实现,那么您将不需要重新编译所有使用它的代码,因为函数具有“已知”签名,所以用户不会感到“奇怪”。 –