tak z ciekawości:
co to jest za zapis:
(struct sockaddr *)&his_struct,?
nawias, coś, gwiazdka, potem ampersand coś...
referencja do wyłuskania wskaźnika![]()
tak z ciekawości:
co to jest za zapis:
(struct sockaddr *)&his_struct,?
nawias, coś, gwiazdka, potem ampersand coś...
referencja do wyłuskania wskaźnika![]()
to zanczy dokladnie tyle, co &his_struct.
Tylko zapisane nieco dluzej.
no to skoro to jest to samo to czemu takiego dłuższego się używa? żeby wiedzieć do czego się to odnosi lub skąd się wzięło?![]()
bo kompilator wywali ci warning.
Wiesz, zeby pisac w c, musisz umiec rysowac szlaczki z gwiazdek.
bo funkcja accept wymaga wskąznika do struktury sockaddr, a my wypełniamy struct soccaddr_in wiec musimy ją zrutowac na sockaddr...a skoro his_struct jest adresem to rzutowanie(to co jest w nawiasie wymaga wskaźnika czyli gwiazdki na obiekt który rzutujemy)bo jesli zwykły jest argumentem bez wskaźników ani adrsów to po prostu bez gwiazdki np.:
long a = 10; //zrzutujemy na long
int b= (long)a; // to jest bez wksazników
int *c;
c= (long *)&a//to ze wskaznikami
a mozna jeszcze inaczej(skrótem):
int *c = (long *)&a;
ale najlepiej nie komplikowac sobie zwykłych zmiennych wskaźnikami tylko uwaznie trzeba czytac argumenty funkcjii-najlepiej stosowac to przy tablicach
tzn. w przypadku tego przypadku z tym his_struct to jest oszustwo kompilatora ze wskazuje na struct sockaddr
Ostatnio edytowane przez lukasz6547 : 07-21-2008 - 12:26