【发布时间】:2013-06-13 18:08:00
【问题描述】:
我在 OS X 上使用 i686-apple-darwin11-llvm-gcc-4.2,我正在尝试从 this archive 编译各种程序,特别是经典的 FitCurves.c,它通过一组点拟合贝塞尔曲线。
http://tog.acm.org/resources/GraphicsGems/
一些 void 或 int 函数定义时没有返回类型,这会产生警告。
ConcaveScan.c:149:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
compare_ind(u, v) int *u, *v; {return pt[*u].y <= pt[*v].y ? -1 : 1;}
我不太确定:有一个错误
cc -g -Wno-implicit-int -Wreturn-type -c -o AAPolyScan.o AAPolyScan.c
AAPolyScan.c:106:4: error: non-void function 'drawPolygon' should return a value [-Wreturn-type]
return; /* (null polygon) */
据我了解,编译器似乎认为它被隐式声明为返回 int 的函数,但该函数返回 void,从而导致错误。从声明为返回 int 的函数到 return 在 C 中有意义吗?我在这里很困惑..
我怎样才能很好地编译这个?我不一定无法编译,但警告信息量不是很大。它是使用旧语法编写的,我知道。
【问题讨论】: