Как в приведённом фрагменте кода будет задействован указанный typedef?

typedef int collection[1];

set(n,c)
int n;
collection c;
{
    c[0] = 0;
}

num(n)
int n;
{
    collection candidates;
    set(n, candidates);
 }

Здесь приведена функция num в формате K&R C. Как я могу проверить её работоспособность в Linux? Меня смущает, что candidates объявлен без индекса, поэтому не очевидно, как здесь задействуется typedef. Вопрос создал, потому что не знаю, как проверить работу typedef. Это - фрагмент кода из книги, поэтому возможна ошибка.

Update

Я дописал код в мобильном приложении Coding C от Kvass Yu:

#include<stdio.h>
typedef int collection[1];

set(n,c)
int n;
collection c;
{
    c[0] = 0;
 }

 num(n)
 int n;
 {
    collection candidates;
    set(n, candidates);
    printf("%d", candidates[0]);
 }
 int main()
 {
    num(1);

    return 0;
  }

Приложение компилируется и выводит 0. Мне не ясно, как тут применяется typedef, если в нём указано collection[1] заменять на int, или я не прав? Не понятно, какой тип в итоге будет у candidates. Отказаться от K&R не получится, потому что я с ним не знаком.


Ответы (0 шт):