Forum: Mikrocontroller und Digitale Elektronik int in pointer umwandeln


von Siegfried S. (dieleena)


Lesenswert?

Hallo,
möchte unter C " int in einen pointer " umwandeln.

derzeitig habe ich das so gelößt:
1
unsigned char *PortZeiger;
2
unsigned int  PortAdresse;
3
unsigned char PortBit;
4
5
6
ps.true   = 0;
7
//
8
PortBit = memory_table_bit[ablauf_schleife];
9
PortAdresse = memory_table_addr[ablauf_schleife];
10
// berechne Port-Zeiger
11
PortZeiger = 0;
12
PortZeiger += PortAdresse;
13
// Bit testen
14
if (*PortZeiger & PortBit)  //  BIT == 1
15
{        
16
ps.true = 1;
17
}

vielen Dank im voraus.
Gruß

von Floh (Gast)


Lesenswert?

Siegfried Saueressig schrieb:
> derzeitig habe ich das so gelößt:

Und funktionierts?
Wenn ja, warum fragst du?
Wenn nein, was für Fehler kommen?
:-)

von Loonix (Gast)


Lesenswert?

Stichwort: Typecast
1
   PortZeiger = (unsigned char*)PortAdresse;

von Siegfried S. (dieleena)


Lesenswert?

@Loonix
danke für die schnelle und einfache Antwort
Gruß

von Dennis S. (bzzzt)


Lesenswert?

Eigentlich brauchst du gar keine Casts an der Stelle, weil du auch ein 
Feld von Zeigern statt ein Feld von int deklarieren kannst.

von Sven P. (Gast)


Lesenswert?

Siegfried Saueressig schrieb:
> Hallo,
> möchte unter C " int in einen pointer " umwandeln.
Das ist in C in der Art nicht vorgesehen.
Es steht nirgendwo geschrieben, wie die Integer-Darstellung mit dem 
Zeiger korreliert (denk mal an Segment:Adresse).

Also: Compiler-Handbuch studieren...

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.