static inline void 函数有警告 "control reaches end of non-void function"
static inline void function has warning "control reaches end of non-void function"
我目前在 C:
中有以下函数
static inline void *cmyk_to_rgb(int *dest, int *cmyk)
{
double c = cmyk[0] / 100.0;
double m = cmyk[1] / 100.0;
double y = cmyk[2] / 100.0;
double k = cmyk[3] / 100.0;
c = c * (1 - k) + k;
m = m * (1 - k) + k;
y = y * (1 - k) + k;
dest[0] = ROUND((1 - c) * 255);
dest[1] = ROUND((1 - m) * 255);
dest[2] = ROUND((1 - y) * 255);
}
编译时提示
warning: control reaches end of non-void function [-Wreturn-type]
我试过在函数体的末尾添加一个明确的 return
,这导致了一个彻底的错误。解决此警告的正确方法是什么?我在网上找到的任何解决方案都涉及添加 return 语句,其中函数应该 return 某个值(int
等),但这里不是这种情况。
void *
不是 void
将第一行更改为
static inline void cmyk_to_rgb(int *dest, int *cmyk)
void *
是一些未指定为特定类型的指针。不从指定为返回 int *
的函数返回值会给您类似的错误。
我目前在 C:
中有以下函数static inline void *cmyk_to_rgb(int *dest, int *cmyk)
{
double c = cmyk[0] / 100.0;
double m = cmyk[1] / 100.0;
double y = cmyk[2] / 100.0;
double k = cmyk[3] / 100.0;
c = c * (1 - k) + k;
m = m * (1 - k) + k;
y = y * (1 - k) + k;
dest[0] = ROUND((1 - c) * 255);
dest[1] = ROUND((1 - m) * 255);
dest[2] = ROUND((1 - y) * 255);
}
编译时提示
warning: control reaches end of non-void function [-Wreturn-type]
我试过在函数体的末尾添加一个明确的 return
,这导致了一个彻底的错误。解决此警告的正确方法是什么?我在网上找到的任何解决方案都涉及添加 return 语句,其中函数应该 return 某个值(int
等),但这里不是这种情况。
void *
不是 void
将第一行更改为
static inline void cmyk_to_rgb(int *dest, int *cmyk)
void *
是一些未指定为特定类型的指针。不从指定为返回 int *
的函数返回值会给您类似的错误。