[问题] 一程式问题 和一个小问题

楼主: horse2819 (风要飞翔)   2014-05-13 08:06:53
#include <stdio.h>
int sum_of_square(int a, int b)
{
int square(int v)
{return v*v;
}
return square(a) + square(b);
}
int main()
{printf("%d", sum_of_square(3, 4));
return 0;
}
请问为何无法通过编译呢
在其他版发问
一位说 因为函式内没用到 a b
一位说不可拥巢状函式
不知道哪个才是对的
还有一个小问题是
void 函式
这样是这个函式不会回传任何值
即使是函式内有return也是吗?
作者: petercoin (彼得币)   2014-05-13 08:47:00
compiler告诉我int square()是违反规则的 把他拉出去拉到sum_of_square上面再编译就可以了a跟b没用到在VS上顶多是给一个warning 不会编译不过
作者: flydragon198 (Richard)   2014-05-13 09:17:00
http://codepad.org/vlM1ABpu 把square拉出来可以过都定义void了,如果还return,会错误吧前面是因为巢状函式,在函式内又定义函式造成错误
作者: LPH66 (-6.2598534e+18f)   2014-05-13 09:31:00
void 函式也是能半途 return 出来的, 只是不能带值而已原 PO 的问题简答是不允许巢状函式, 但这句话在现在的 C++却不完全正确 -- 不过对新手来说就先这样记吧
作者: GoalBased (Artificail Intelligence)   2014-05-13 10:13:00
本来想回2 但又觉得怪怪的XD
作者: damody (天亮damody)   2014-05-13 14:47:00
这问题超大的
作者: jack710619 (ECLin)   2014-05-13 15:02:00
这排版......
作者: bigpigbigpig (To littlepig with love)   2014-05-13 21:42:00
请不要用 Pascal 的风格写 C 语言程式 :)
作者: IhateOGC (我讨厌)   2014-05-13 22:25:00
指向function的指标,就是个int function指标吧@@?
作者: Caesar08 (Caesar)   2014-05-13 23:01:00
LPH66,为什么不能用 C++不允许巢状函式 解释呢?
作者: azureblaze (AzureBlaze)   2014-05-13 23:10:00
大概认为lambda function算是巢状函式?
作者: yvb   2014-05-14 16:55:00
GNU C extension 接受巢状函式, 故原PO程式用gcc可编译并执行.

Links booklink

Contact Us: admin [ a t ] ucptt.com