2016-08-02 42 views
3

这是一个理论问题。进一步了解如何操作函数结尾处的返回语句。返回到功能而不是“0”或“变量”

,我们可以这样做:

int intialize1() 
{ 
    ...do smth; 
    ...do smth; 

    return initialize2(); 
} 

在其他C文件

int initialize2() 
{ 
    ...do other thing; 
    ...do other thing; 

    return 0; 
} 

这是正确的方式做这样吗?

+0

如果语法是正确的,那么是的。即方法返回他们说他们将返回的内容。所以'initialize1()'是'int initialize1()','initialize2()'是'int initialize2()'。 –

+0

没有显式返回类型的函数定义默认在C90及更早版本中返回'int',并且在C99及更高版本中是非法的。你有意使用这种过时的形式吗?另外,从你的问题来看,你还没有完全清楚你想要做什么。 –

+0

是的,这是正确的。程序员通常会遵循这种模式。 – RajSharma

回答

3

你写了什么是完全正确的,频繁地进行,并且在功能上等同于:

int initialize1() 
{ 
    ...do smth; 
    ...do smth; 

    int x_value;    // Create a place to store the return value 
    x_value = initialize2(); // Get the result of the function, and store it. 
    return x_value;   // Return the stored value. 
} 
+0

太棒了!替代等效建议确实有助于更深入地了解return语句的用法。 – danteDev

2

它是完全合法的,从return语句, 通话功能,但你必须确保返回类型的两种功能是一致的,并且 没有数据截断或语义错误的隐式转换

+0

谢谢@dolphinden,我现在有信心使用这种方法。我纠正了退货类型,我的不好。 – danteDev