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 ??
Printable View
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? :confused:
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