r2 - 03 Mar 2005 - 00:22:00 - PhilKYou are here: TWiki >  OPENTS Web > ЧаВО > ТипVoidКакРезультатТ-функций

Для т-функций существует два способа возвращения результата. Первый вариант, это возвращение результата через оператор return:

tfun int calculate(tval int n){
  return n+1;
}

Второй вариант, это использование ключевого слова tout в аргументах функции:

tfun int calculate(tval int n, tout int res){
  res = n + 1;
  return 0;
}

При использовании второго варианта, невольно возникает желание указать в качестве типа возвращаемого результата void и возвращать все результаты с использованием ключевого слова tout, однако это приводит к ошибке на этапе компиляции.

Причина кроется в недоработке, которая не позволяет устанавливать для т-функций тип возвращаемого результата как void. Как правило, это решается установкой любого типа и возвращением в конце функции некоторого фиксированного значения. Вызов функции следует осуществлять так, как будто это функция типа void:

tfun int calculate(tval int n, tout int res){
  res = n + 1;
  return 0;
}

tfun int my_fun(tval int param){
  tval int res;
  // Результат возвращаемый через return нигде не используется
  calculate(param, res);
}

-- PhilK - 02 Mar 2005

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r2 < r1 | More topic actions
 
Powered by TWiki

This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback