Vsadím se, že jste to zaisté zkoušeli, předát parameter funkce pomocí její reference v prostředí pro
ANSI C případně
C99 a hodilo Vám to hlášku (třeba v překladači Mingw):
... error: expected ';', ',' or ')' before '&' token ...
,protože jste se snažili zkompilovat následující ukázku programu:
void test(u8 &a) {
a++;
}
Důvod, proč to nejde zkompilovat, je ten že předávání parametru funkce pomocí reference, jde pouze u jazyku
C++ a ne u jazyka
C a ani u jazyka
objective-C.
A když už jsme u reference, tak se podívejte na následující ukázku:
int main(void) {
u8 b=1;
test(b);
cout << "b=" << b << endl;
}
Po spuštění programu bude hodnota
b=2. A to je z toho důvodu že se vezme reference lokální proměnné
b. Ta se předá jako parameter do funkce test, tam se inkrementuje hodnota na kterou reference ukazuje a tím se změní i hodnota proměnné b protože reprezentuje to samé pamětové místo.
Zdroj:
Passing arguments by reference
S pozdravem
ViaExplore - Tomáš Kamenický