Una delle migliori regole empiriche in tali situazioni è una famosa frase: "Il codice viene letto più spesso di quanto non sia scritto". Scriverà il codice una volta. Non è un grosso problema scrivere alcuni caratteri in più.
Quando si avvia l'uso di macro, la domanda dovrebbe essere "questo rende più facile la comprensione da parte del lettore". La risposta a questa domanda dipende molto dal lettore, ma in generale troverete che le macro riducono la leggibilità.
Le macro aumentano la leggibilità quando trasformano qualcosa di difficile da leggere in qualcosa di semplice da leggere. Per esempio, parte del codice con cui lavoro ha una macro CATCH_AND_HANDLE_TYPICAL_EXCEPTIONS
che è un blocco di boilerplate di circa 20 righe che viene usato decine di volte. Per i nostri sviluppatori della nostra azienda, quella particolare macro migliora la leggibilità. Riduce la quantità di tempo che il lettore trascorre in sospeso durante il lavoro attraverso i dettagli della gestione delle eccezioni.
Scrivere macro leggibili è un'arte. Se sei nuovo a C, ti consiglio di evitare di scriverli per un po ', solo così puoi abituarti a ciò che gli altri trovano leggibile e illeggibile. Quindi, una volta che sei pronto, inizia imparando gli idiomi delle macro chiave come l'idioma do { ... } while(0)
, il che rende una macro più simile a un'affermazione. È un processo di scansione, camminata, esecuzione.
Quindi, se decidi di imparare anche C ++, dai un'occhiata a Boost.Preprocessor. Ti mostrerà esattamente come sono le macro assurdamente potenti ... e perché non dovresti mai volgersi al lato oscuro e usarle come fanno in quella libreria =)
(Ho girato il lato oscuro di BOOST_PP
due volte nella mia carriera: uno era un errore completo, l'altro ... non chiaro)