Pages: [1]   Go Down
Author Topic: creare errore di compilazione  (Read 380 times)
0 Members and 1 Guest are viewing this topic.
Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti ragazzi, pensavo ai file di configurazione di certi programmi e mi é venuta in mente una cosa malsana ad esempio prendiamo in considerazione il file di configurazione del software multiwii (software per multicotteri) e mi é venuto in mente che per ogni settaggio di motori ci sono dei define da commentare o decommentare, ma se io ne decommento 2 dove é permessa solo una scelta nel compilare ovviamente verranno degli errori a seconda del codice ma é possibile mettere degli errori personalizzati?
Del tipo una serie di if del compilatore "#if" che se verificati printano nella console di debug qualcosa del tipo "errore non puoi fare la scelta x e y assieme"

Spero di essermi spiegato  smiley-wink
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 327
Posts: 22640
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Certo che puoi:

Code:
#if CONDIZIONE
..... codice buono
#elif SECONDA_CONDIZIONE
..... codice buono
#else
#error MESSAGGIO DI ERRORE
#endif
Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 124
Posts: 9315
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Del tipo una serie di if del compilatore "#if" che se verificati printano nella console di debug qualcosa del tipo "errore non puoi fare la scelta x e y assieme"

Il GCC consente di inserire dei messaggi di warning e di errore, con blocco della compilazione, che vengono visualizzati durante la compilazione.
Gli avvisi tramite la direttiva "#warning quellochetipare"
Gli errori tramite la direttiva "#error quellochetipare"

Basta che verifichi le varie define abilitate e in caso di incompatibilità visualizzi il relativo messaggio d'avviso oppure generi l'errore con il conseguente blocco della compilazione.
Per vedere le warning nell'IDE di Arduino devi abilitare il modo "verbose" per la compilazione, le #error vengono gestite anche senza modo verbose e causano l'ìmmediato stop della compilazione con relativo messaggio che appare nella finestra delle notifiche di Arduino.
Logged

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie mille, ma nel caso di un codice in genere tutti gli if di compilazione (non so il nome tecnico) sarebbero passati dal pre-compilatore (che elimina appunto i commenti e risolve queste cose se non erro) quindi la compilazione interrompendosi mostrerebbe solo quegli errori o anche errori relativi al resto del codice (presenti nel caso di una misconfiguration smiley-razz )?
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 124
Posts: 9315
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

quindi la compilazione interrompendosi mostrerebbe solo quegli errori o anche errori relativi al resto del codice (presenti nel caso di una misconfiguration smiley-razz )?

Se usi la #error il processo di compilazione si interrompe alla prima che incontra, ovviamente gestita tramite #if, se usi la #warning ti appaiano tutte quante in mezzo ai vari messaggi del compilatore, le riconosci facilmente perché l'IDE le scrive in rosso mentre gli altri messaggi sono in bianco.
Logged

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Perfetto grazie mille, ora mi metto ad ideare una cosuccia smiley-wink
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Pages: [1]   Go Up
Jump to: