Új hozzászólás Aktív témák

  • dabadab

    titán

    válasz Livius #15782 üzenetére

    Ezt a template programozást arra érted, hogy előre fel van töltve pár típus struktúra különböző SPI controllerek fv pointereivel meg konfigjaival?

    Nem, hanem pl. az MXC_SPI_BUF_RX makróra, ahol a makróparaméter egy típus.

    Más kernel forrásban úgy emlékszem van olyan postfix sokszor a változóknak, hogy _u64, _s32, ez itt egyáltalán nincs, pedig nálunk erre nagyon lenne majd igény. :F

    NE!
    Szerintem rosszul emlékszel, mert Linus véleménye erről az, hogy "Encoding the type of a function into the name (so-called Hungarian notation) is brain damaged—the compiler knows the types anyway and can check those, and it only confuses the programmer" - és ez nyilván érvényes a változókra is és pont ez a félreértett hungarian notation, amiről az elején beszéltem - Simonyinak esze ágában sem volt ilyen hülyeséget kitalálni. Amit ő kitalált, az az, hogy szemantikus típusjelentést rakjon bele a változónévbe. Primitív és némileg erőltetett példa, de mondjuk koordinátáknál az X és az Y koordináta is int (vagy float vagy akármi), szóval a fordítóprogram szempontjából tök egyforma típus, de mégis teljesen más a jelentésük, amit érdemes jelezni a programozónak, szóval a pos_x és a pos_y az legitim használata a HN-nek - a s32_pos viszont nem.

    Figyelmes olvasók itt rámutathatnak a hozzászólásom elejére, ahol az a makro olyan függvényeket generál, mint spi_imx_buf_rx_u8 meg spi_imx_buf_rx_u32. Igen, ez itt a kivétel, ahol van értelme belekódolni a függvénynévbe, mert a függvény lényege (és megkülönböztető eleme) az, hogy milyen értékkel dolgozik, az soha, semmilyen körülmények között nem merülhet fel, hogy az spi_imx_buf_rx_u8 mégis inkább egy előjeles 16 bites integerrel dolgozzon.

Új hozzászólás Aktív témák