Registrierung Gästebuch Kalender Mitgliederliste Teammitglieder Häufig gestellte Fragen Suche Zur Startseite
HackBox Forum
Forum Linkliste Online Spiele Datenbank Forum Foto Galerie Chat Portalansicht des Forum

HackBox Forum » Programmieren & Entwicklung » Programmieren » probleme mit pointern in C » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen
Seiten (3): « vorherige 1 2 [3] Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen probleme mit pointern in C
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
green1
Routinier


images/avatars/avatar-110.jpg
[meine Galerie]


Dabei seit: 26.08.2009
Beiträge: 297

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von DarkSquirrel
und wo wir schon bei optik sind:

definition:
code:
1:
2:
3:
4:
5:
6:
7:
struct IPaddr
{ 
	unsigned int d:8; 
	unsigned int c:8; 
	unsigned int b:8; 
	unsigned int a:8; 
};


nutzung:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
struct IPaddr *eineIP;
unsigned int *langeIP;
eineIP=(struct IPaddr*)calloc(1,sizeof(struct IPaddr ));
langeIP=(unsigned int)eineIP;
eineIP->a=192;
eineIP->b=168;
eineIP->c=1;
eineIP->d=1;

printf("%u\n",*langeIP);
*langeIP=3232235778;
printf("%u.%u.%u.%u\n",eineIP->a,eineIP->b,eineIP->c,eineIP->d);


... umwandlung von 3-dotted-number in langzahldarstellung und andersrum nur mit zuweisungen


über drei jahre ist es her, doch mich interessiert es noch sehr! *reim* xD

schreibe mir grad ne kleine udp-klasse mit winsockets und da konnte ich es gut gebrauchen:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
typedef struct
{
	unsigned int a:8;
	unsigned int b:8;
	unsigned int c:8;
	unsigned int d:8;
} NET_IPaddr;

ULONG NET_ip_to_addr(int a, int b, int c, int d)
{
	ULONG tmp;
	NET_IPaddr *addr = (NET_IPaddr *) &tmp;
	addr->a = a;
	addr->b = b;
	addr->c = c;
	addr->d = d;
	return tmp;
}

listen.sin_addr.s_addr = NET_ip_to_addr(127,0,0,1);


weiß aber nicht, ob mir irgendwann mal die endianness dazwischenfunkt. großes Grinsen

der weg andersherum:

code:
1:
2:
3:
4:
NET_IPaddr *ip;
ip = (NET_IPaddr *) &remoteAddr.sin_addr.S_un;
printf("ip: %d.%d.%d.%d\n", ip->a, ip->b, ip->c, ip->d


__________________
"Du wirst entweder kriminell oder Penner!"
15.01.2011 19:29 green1 ist offline E-Mail an green1 senden Beiträge von green1 suchen Nehmen Sie green1 in Ihre Freundesliste auf
Seiten (3): « vorherige 1 2 [3] Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
HackBox Forum » Programmieren & Entwicklung » Programmieren » probleme mit pointern in C

Views heute: 11.751 | Views gestern: 14.054 | Views gesamt: 86.404.135


© • www.hackbox.de forum.hackbox.de
Forensoftware: Burning Board 2.3.6 pl2, entwickelt von WoltLab GmbH
DB: 188.142s | DB-Abfragen: 58 | Gesamt: 0.125s | PHP: -150413.6% | SQL: 150513.6%