После компиляции моего C кода с -Wall активированного следующие предупреждений появилосьВозвращение заявления с более чем аргументами
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);
}
Я знаю, что массивы переходят в функцию в качестве ссылки так, по существу нет необходимости возвращать что-то из этой функции. Но, можете ли вы сказать мне, почему кто-то объявит функцию таким образом. Этот персонал меня смущает. Заранее спасибо
Почему бы не вернуть массив – Sunny
'*** FUNC (...' не действует C. По крайней мере, если нет предварительной процессор магии пошел на перед компиляцией ... – alk
@sergej Да. Спасибо – dimpep