LINUX.ORG.RU

История изменений

Исправление wandrien, (текущая версия) :

Единственный хак синтаксиса, на котором можно изобразить в Си ссылку — это массив единичной длины. Так как массив синтаксически представлен как цельный объект, но в функцию передаётся как указатель, то массив — единственная штука в Си, которая передаётся по ссылке.

Поэтому в библиотеках можно встретить:


typedef _mytype mytype[1];

void foo(mytype a, mytype b);

void bar(void)
{
    mytype x, y;
    foo(x, y); /* Передача по ссылке! */
}

Исходная версия wandrien, :

Единственный хак синтаксиса, на котором можно изобразить в Си ссылку — это массив единичной длины. Так как массив синтаксически представлен как цельный объект, но в функцию передаётся как указатель, то массив — единственная штука в Си, которая передаётся по ссылке.

Поэтому в библиотеках можно встретить:


typedef _mytype mytype[1];

void foo(mytype a, mytype b);

void bar(void)
{
    mytype x, y;
    foo(x, y); /* Передача по ссылке! */
}