Каков тип функции `main0`?

Какого типа функция main0?

Я пишу библиотеку gtk3. Однако для функции g_application_run() требуется argv. Конечно, язык ATS может использовать функцию argv на main0. Но что это за тип?


ats
person masterq    schedule 29.12.2016    source источник


Ответы (1)


Следующий код объявлен в prelude/basics_dyn.dats:

//
symintr main0
//
fun
main_void_0
  ((*void*)): void = "ext#mainats_void_0"
fun
main_argc_argv_0
  {n:int | n >= 1}
  (argc: int n, argv: !argv(n)): void = "ext#mainats_argc_argv_0"
//
overload main0 with main_void_0
overload main0 with main_argc_argv_0
//

Как видите, main0 перегружен main_void_0 и main_argc_argv_0. Тип argv(n) по существу предназначен для линейного массива строк размера n, который заканчивается нулевым значением. Обратите внимание, что нулевое значение не считается частью размера.

person Hongwei Xi    schedule 29.12.2016
comment
Большое спасибо. Моя проблема исправлена: - person masterq; 31.12.2016
comment
github.com/metasepi/c2ats/commit/ - person masterq; 31.12.2016