• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

dziwna linia kodu c++

Object Storage Arubacloud
0 głosów
299 wizyt
pytanie zadane 2 września 2015 w C i C++ przez timer_555 Początkujący (340 p.)
(void *)buffer,

jako parametr posyłany do funkcji typu bool

3 odpowiedzi

+2 głosów
odpowiedź 2 września 2015 przez Dorion300 Szeryf (90,250 p.)
Przekstałca wskażnik o dowolnym typie na typ wskażnika void.

Czasem jest on potrzebny w niektórych funkcjach.

gdyż czasem nie ma sensu przeładowanie funkcji jeśli ona jest duża.

 

Więc dajemy w sposób prosty.

np. parametr1 "trzymaj wskażnik", parametr2 "Którym jest typem char"

Gdyby nie ten sposób to trzeba zrobić drugą funkcję o podobnej wielkości tylko różniącą małymi szczegółami.
komentarz 2 września 2015 przez timer_555 Początkujący (340 p.)
Dzięki domyśliłeś się pewnie za co odpowiada ta klasa zachencam bardzo ciekawy temat.
+2 głosów
odpowiedź 2 września 2015 przez Sebastian Fojcik Nałogowiec (43,020 p.)

Wszystko już koledzy świetnie wytłumaczyli, a ja wtrącę małą dygresję.

Z tego samego powodu, przez który nie domyśliłeś się, że to zwykłe rzutowanie, ten sposób rzutowania jest odradzany. Rzutowanie to istotna operacja, a w ogóle się nie wyróżnia.

(void *)buffer; // Rzutowanie.
void (*buffer)(); // Wskaźnik na funkcję

Gdybyś chciał w kodzie wyszukać gdzie coś rzutowałeś, to Ctrl + F będzie bezużyteczny. Dlatego wymyślono operatory rzutowania, które widać z bardzo daleka i bardzo dobrze, bo jak wspomniałem: rzutowanie, to ważna operacja.

Obecnie należy korzystać z:
static_cast< >
reinterpret_cast< >
const_cast< > <--- używanie tego operatora, to grzech niewybaczalny XD
dynamic_cast< >

0 głosów
odpowiedź 2 września 2015 przez niezalogowany
Napisz ja cię proszę całą deklarację funkcji, czyli zwracanyTyp nazwaFunkcji(parametry); Na razie to mogę powiedzieć, że to zwykły wskaźnik wkazujący na void o nazwie buffer, chociaż nie wiem po co te nawiasy :)
komentarz 2 września 2015 przez Tomasz90 Nałogowiec (25,140 p.)
rzutuje na wskaźnik do voida
komentarz 2 września 2015 przez timer_555 Początkujący (340 p.)
bool Serial::WriteData(char *buffer, unsigned int nbChar)
{
    DWORD bytesSend;

    //Try to write the buffer on the Serial port
    if(!WriteFile(this->hSerial, (void *)buffer, nbChar, &bytesSend, 0))
    {
        //In case it don't work get comm error and return false
        ClearCommError(this->hSerial, &this->errors, &this->status);

        return false;
    }
    else
        return true;
}
komentarz 2 września 2015 przez niezalogowany
A ja myślałem, że ci chodzi o to, że (void *) buffer jest argumentem funkcji. Dorion, miałeś rację ;)

Podobne pytania

0 głosów
2 odpowiedzi 374 wizyt
pytanie zadane 23 sierpnia 2015 w C i C++ przez Slasheruus Nowicjusz (170 p.)
0 głosów
1 odpowiedź 9,441 wizyt
pytanie zadane 31 lipca 2016 w C i C++ przez Iamhexi Obywatel (1,330 p.)
0 głosów
0 odpowiedzi 165 wizyt
pytanie zadane 2 grudnia 2022 w Sieci komputerowe, internet przez Maks Dominiak Nowicjusz (120 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...