Forum: Mikrocontroller und Digitale Elektronik Übergabe per Refenenz bei einer Funktion in Amel Studio 6.1 funktioniert nicht!


von yogi (Gast)


Lesenswert?

Hallo zusammen,

ich verwende einen Atmel AVR ATMega16 Controller.
Zum Programmieren habe ich das Atmel Studio 6.1 im Einsatz.
Die Übergabe per Refenenz bei einer Funktion in Amel Studio 6.1 
funktioniert bei mir nicht!
Fehlermeldung:
expected ';', ',' or ')' before '&' token
Programmcode:
// Test
void Test(uint16_t &Temp)
  {
  Temp = 1;
  }
Kann mir jemand helfen?
Danke

von g457 (Gast)


Lesenswert?

> Kann mir jemand helfen?

C++ nutzen. Oder Pointer.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

yogi schrieb:
> Kann mir jemand helfen?

In C gibt es keine Referenzen.

von yogi (Gast)


Lesenswert?

in C  -> Übergabe per Zeiger (Pointer)
in C++ -> Übergabe per Referenz möglich

ich verwende Atmel Studio 6.1, bin mir nicht sicher, welcher Compiler
C, C++ verwendet wird

von Peter II (Gast)


Lesenswert?

yogi schrieb:
> ich verwende Atmel Studio 6.1, bin mir nicht sicher, welcher Compiler
> C, C++ verwendet wird

wie heist denn deine Datei? *.c oder *.cpp?

von g457 (Gast)


Lesenswert?

> ich verwende Atmel Studio 6.1, bin mir nicht sicher, welcher Compiler
> C, C++ verwendet wird

Das hängt (auch) an der Dateierweiterung. '.c' -> C, '.cpp' -> C++.

von yogi (Gast)


Lesenswert?

ich habe die Endung '.c'

kann ich in Atmel Studio 6.1 umschalten
zwischen c und c++?

von g457 (Gast)


Lesenswert?

> ich habe die Endung '.c'

Also plain C.

> kann ich in Atmel Studio 6.1 umschalten zwischen c und c++?

Umbenennen. Aber stellt Dich schon mal auf hüpsche andere Fehler ein :-) 
Einfacher isses Du nutzt das, was C Dir bietet.

von yogi (Gast)


Lesenswert?

wie muss ich die Übergabe per Zeiger realisieren?

Programmcode:

// Test Übergabe per Zeiger (in C)
void Test(uint16_t *Templocal)
  {
  *Templocal = 1;
  }

// Funktionsaufruf
uint16_t   Temp;
Test(Temp);

von Peter II (Gast)


Lesenswert?

yogi schrieb:
> // Funktionsaufruf
> uint16_t   Temp;
> Test(Temp);

fast.

Test(&Temp);

von yogi (Gast)


Lesenswert?

Hallo zusammen,

vielen Dank für die Unterstützung!
Ihr habt mir super weitergeholfen, da ich noch nicht so tief in der
Microcontroller Programmierung bin.

Gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.