Dove mettere le costanti di configurazione?

2

Considerando un piccolo progetto C incorporato, come decidere se certe costanti appartengono a

  • un file di configurazione globale
  • l'intestazione del "modulo == unità di compilazione"
  • sopra il vero file C
  • o all'interno del codice?

    Sto parlando di costanti che possono spesso cambiare e devono essere posizionate in modo appropriato per l'utente finale, nonché per lo sviluppatore. Diversi esempi includono ENABLE_GLOBAL_ERROR_CHECKING , USART_BAUD_RATE e TEMPERATURE_SETPOINT .

posta Vorac 12.01.2016 - 21:30
fonte

2 risposte

3

Se l'utente dovrebbe essere in grado di modificare i valori, inserirli nel codice come costanti non è ovviamente un'opzione. Un file di testo con coppie chiave-valore sembra appropriato (considerando che si tratta di un piccolo progetto).

In generale dovresti chiederti se vuoi legare le tue impostazioni a un gruppo di utenti, alla macchina, al file di programma o al singolo utente. Potresti anche combinarli, con le impostazioni utente che annullano le impostazioni di macchina o di gruppo.

Oppure puoi accettare un percorso di file delle impostazioni come argomento del tuo programma in modo da poter mantenere più configurazioni che possono essere attivate per ogni singola esecuzione.

    
risposta data 12.01.2016 - 22:10
fonte
2

Per la programmazione incorporata, di solito è preferibile avere le costanti nella parte superiore del file sorgente. Questo per garantire la leggibilità e la facilità di modificare rapidamente il valore senza dover approfondire il codice e modificarlo.

#include <thisLibrary.h>
#include <thisOtherLibrary.h>

#define USART_BAUD_RATE 10000
#define SOME_OTHER_VALUE 1234

Per altri scopi, usa file come XML e JSON per salvare i dati. Naturalmente, saranno necessarie librerie speciali per leggerle nel tuo programma.

    
risposta data 13.01.2016 - 00:07
fonte

Leggi altre domande sui tag