Вопрос по c – Возврат нескольких значений из функции C

6

ImportantError: User Rate Limit ExceededError: User Rate Limit Exceeded.

Error: User Rate Limit Exceeded

EDITError: User Rate Limit Exceeded

AnswerError: User Rate Limit Exceeded

  1. Store outvalues in global object (I would assume something like outvals[2]?), or
  2. Pass outvalues as params in the function (foo(int in, int *out1, int *out2)), or
  3. return a struct with both outvals, or
  4. (3) only if the values are semantically related.

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceededso minusculeError: User Rate Limit Exceeded Robert Cartaino♦
Error: User Rate Limit Exceeded Robert Cartaino♦
Error: User Rate Limit Exceeded Jonathan Leffler
Error: User Rate Limit Exceeded Jonathan Leffler
Error: User Rate Limit Exceeded Dervin Thunk

Ваш Ответ

11   ответов
3

void somefunction (int inval1, int inval2, int *outval1, int *outval2) {
   int x = inval1;
   int y = inval2;
// do some processing
   *outval1 = x;
   *outval2 = y;
   return;
}
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Dervin Thunk
-1

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

0

Error: User Rate Limit Exceeded

1

Error: User Rate Limit Exceeded

3

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Dervin Thunk
Error: User Rate Limit Exceeded Dervin Thunk
@Dervin Вероятно, нет большой разницы в производительности между этими двумя опциями, но это будет зависеть от того, как вы используете структуру и т. Д., О которых у нас нет подробностей. Если производительность так важна (и, честно говоря, это редко бывает), тогда вам нужно выполнить свои собственные измерения, чтобы определить, какой из них самый быстрый.
1

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded
7

Error: User Rate Limit Exceededconsider the semanticsError: User Rate Limit Exceededcommunicates you intentionsError: User Rate Limit Exceeded

Error: User Rate Limit Exceededare tightly coupledError: User Rate Limit Exceededartificial mechanismError: User Rate Limit Exceeded

0

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

void SomeFunction( ReturnStruct* myReturnVals )
{
  // Fill in the values
}   

// Do some stuff    
ReturnStruct returnVals;
SomeFunction( &returnVals);    
// Do more stuff
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
0

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded
5

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

1

Error: User Rate Limit Exceeded

Похожие вопросы