Sto scrivendo codice C incorporato per un microcontrollore. Il codice deve essere condiviso tra tre diverse schede di circuito e le configurazioni di input/output sono impostate in fase di esecuzione da alcune tabelle durante l'inizializzazione.Come si verifica una funzione C per l'input valido durante la compilazione?
Il microcontrollore ha 24 canali ADC e ho una funzione che può impostare o cancellare un pin come canale ADC. Ciò significa che un input per la funzione può essere composto da 0 a 23 (che è impostato nella tabella) e nient'altro.
Vorrei mettere una sorta di "cosa" del preprocessore o del compilatore che potrebbe identificare che la funzione ha ricevuto un valore diverso da 0-23 e lanciare qualche tipo di errore o avvertimento e impedire la compilazione del codice nel caso in cui qualcuno inserisca un valore non valido nella tabella.
Qualcuno ha qualche consiglio su come meglio farlo?
È potrebbe usare asserzioni statiche. – imreal
Penso che tu stia confondendo le cose qui. Una funzione riceve input durante il runtime e il preprocessore o il compilatore può controllare solo cose note durante la compilazione. È necessario aggiungere un controllo all'inizio della funzione che verificherà i limiti di input. – SomeWittyUsername
Il motivo per cui ho pensato che ci fosse un modo per controllarlo durante la compilazione è che non ci saranno mai dei valori passati a quella funzione che non sono già noti al momento della compilazione. – Adam