Передача по ссылке в C99 - PullRequest
4 голосов
/ 19 марта 2011

Я только что прочитал this :

В C ++ (и C99) мы можем передавать по ссылке, что обеспечивает ту же производительность, что и проход по указателю.

Итак, я попробовал этот простой код:

#include <stdio.h>

void blabla(int& x){
    x = 5;
}

int main(){
    int y = 3;
    printf("y = %d\n", y);
    blabla(y);
    printf("y = %d\n", y);
}

Вывод был:

gcc test.c -o test -std=c99
test.c:3:16: error: expected ';', ',' or ')' before '&' token
test.c: In function 'main': 
test.c:10:2: warning: implicit declaration of function 'blabla'

Теперь я запутался.Действительно ли проход по ссылке поддерживается C99?

1 Ответ

5 голосов
/ 19 марта 2011

Эта страница неправильная. В C нет «ссылок» (даже в C99).

В C, когда вы хотите передать «по ссылке», вы фальсифицируете ссылочную семантику, используя указатель.

...