Void与Int函数

时间:2011-10-10 00:49:07

标签: c++ function int void

void和int函数之间有什么不同?我什么时候使用哪个?只打印出消息或变量值时会无效吗?像cout<<值;

或者只是文字?

当你真正在其中进行计算时,是否使用了int?

8 个答案:

答案 0 :(得分:5)

当您不需要从函数向函数调用者返回任何内容时,使用

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
}

答案 1 :(得分:4)

您希望功能返回吗?如果没有,那么它应该是void。如果您希望它返回int,那么它应为int。如果你想让它返回别的东西,那么它应该有一些其他的返回类型。

答案 2 :(得分:1)

有些人更喜欢使用返回int的函数来表示某些错误或特殊情况。请考虑以下代码:

int print (int* ptr)
{
    if (ptr == NULL)
    {
        return -1; // Error code.
    }

    std::cout << *ptr;

    return 1; // Success code.
}

答案 3 :(得分:1)

当你使用void时,这意味着你不希望从函数返回任何东西。 而int返回可能是函数计算的结果,或者指示返回时的状态,例如错误号或其他可以告诉你函数执行时发生了什么的事情。

答案 4 :(得分:0)

您返回void表示返回 nothing

int返回可能会也可能不会表明已经执行了计算(例如,可能只是返回代码)。

答案 5 :(得分:0)

就像上面提到的那样,void没有返回值,所以当你不需要这样做时你就可以使用它。 例如,你可以使用'void'来打印文本,但主要是修改参数(改变你已经拥有的东西),所以你不需要返回一个值。

假设您要查找int c,即二(整数)数,ab(所以a + b = c)。您可以编写一个函数来添加这些数字并将其值分配给c

int c;
int sum (int a, int b)
{
    return a+b;     
}       

c = sum(a,b);

使用void时,您只需修改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”的总和: - )

答案 6 :(得分:0)

实际上,如果您正在为托管系统编译代码,例如PC,Linux,Mac,Android,则必须这样做。然后main必须返回int。如果您正在为独立系统编译代码,例如嵌入式微控制器,或者如果您正在制作操作系统,那么main的返回类型可以是任何东西。

虽然如果使用int或void但是根据标准C不符合规定,则不会发生错误。

答案 7 :(得分:0)

另一个区别是void函数不需要在其中返回: 这两段代码是有效的,不会生成编译器警告: 小片1

void msg1()
{
    cout<< "This is a message." << endl;
    return; // returns nothing or void

}

Snippet 2

void msg2()
{
    cout<< "This is a message." << endl;
}

两者都有相同的行为,不会显示任何警告。

如果声明一个非空函数并且你没有返回一个值,你的编译器很可能会显示一个类似于&#34;的警告。警告:函数中没有return语句返回非void&#34;。

如果显示此错误,它取决于发送给编译器的修饰符参数。

此代码非常类似于显示编译器警告,因为没有返回:

int test(){
    printf("test");
}