Ho un sacco di #define
nel mio codice. Ora uno strano problema si è insinuato.Il valore di C definisce le modifiche in modo imprevisto
ho questo:
#define _ImmSign 010100
(che sto cercando di simulare un numero binario)
Ovviamente, mi aspetto il numero di diventare 10100. Ma quando uso il numero si è trasformato in 4160.
Che cosa sta succedendo qui? E come lo fermo?
ULTERIORI
Okay, questo è dovuto alla lingua interpretare questo come un ottale. Esiste tuttavia un modo intelligente per forzare la lingua a interpretare i numeri come numeri interi? Se uno 0 definisce ottale, e 0 x definisce esadecimale ora che ci penso ...
010100 in ottale è 0 * 1 + 0 * 8 + 1 * 64 + 0 * 512 + 1 * 4096 = 64 + 4096 = 4160. –
http://www.boost.org/doc/libs/1_42_0/libs/utility/utility.htm#BOOST_BINARY Questo può essere utile a voi. anche se C++, penso che sia il preprocessore solo – Anycorn
@aaa thx per il suggerimento, ma non credo che sia permesso usare una libreria di terze parti. – NomeN