【发布时间】:2015-11-22 19:24:13
【问题描述】:
在激活 -Wall 的情况下编译我的 C 代码后,出现以下警告
left operand of comma operator has no effect
这与我的return 语句中的多个参数有关。故事如下:
假设有一堆动态分配的 3D 数组(A、B 和 C)并希望对它们进行一些操作。数组被定义为指向指针的指针,并使用 malloc(标准过程)进行分配。对它们的操作将在单独的函数中发生。出于某种原因,我将该函数声明为三重指针,如下所示:
***func( double ***A, double ***B, double ***C)
{
do some work here on A, B and C
return(A, B, C);
}
我知道数组作为引用传递给函数,所以基本上不需要从这个函数返回一些东西。但是,你能告诉我为什么有人会这样声明一个函数吗?这个工作人员让我很困惑。提前致谢
【问题讨论】:
-
为什么不返回数组
-
***func( ...不是有效的 C。至少如果在编译之前没有预处理器魔法......
标签: c arrays pointers return multiple-arguments