Delucidazione librerie

leggendo il file ccp delle librerie noto che alcune non sono scritte alla maniera dell' "ide" cosa hanno usato per fare o convertire il file in quel "modo"
esempio

uint16_t AS5047P::readMagnitude(AS5047P_Types::ERROR_t *errorOut, bool verifyParity, bool checkForComError, bool checkForSensorError) {

    AS5047P_Types::MAG_t res = AS5047P::read_MAG(errorOut, verifyParity, checkForComError, checkForSensorError);
    return res.data.values.CMAG;

e qui in basso i ::

bool AS5047P::write_SETTINGS2(const AS5047P_Types::SETTINGS2_t *regData, AS5047P_Types::ERROR_t *errorOut, bool checkForComError, bool verifyWittenReg) {
    
    return writeReg<AS5047P_Types::SETTINGS2_t>(regData, errorOut, checkForComError, verifyWittenReg);

}

cosa leggere per approfondire la "questione"

Ma quale è il tuo dubbio?

Io non vedo nulla di strano

Che intendi con alla maniera dell'IDE?
E' una classe C++ ed è quello il linguaggio di riferimento.

Qui sta usando un metodo definito nella classe, ma senza usare un'istanza della classe stessa (in pratica come se fosse una chiamata a funzione).
Crea una variabile locale res di tipo AS5047P_Types::MAG_t (che è una classe "custom" definita nel file AS5047P_Types.h), e gli assegna il risultato del metodo read_MAG()

In questo caso invece sta usando un template perché la funzione writeReg è definita in tal senso.

Un manuale ben fatto e dove vengono approfonditi i concetti avanzati del C++

L'operatore :: è detto "operatore dell'ambito" e viene utilizzato per accedere a membri o funzioni definiti in un determinato ambito (namespace, classe, o struttura) o per distinguere tra variabili e funzioni che potrebbero avere lo stesso nome in diversi contesti.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.