Sto refactoring del codice molto vecchio che è pieno di bug e pratiche molto discutibili, almeno per gli standard moderni. Ora mi sono imbattuto in una linea che io semplicemente non riesco a decifrare:Linea criptica "??! ??!" nel codice precedente
p
e k
sono di tipo int *
return p??!??!k?p?*p:sizeof(*k):0;
Quando l'ho visto non potevo credere ai miei occhi - So che l'operatore ?
, ma la sua sintassi è bool ? trueresult : falseresult
e un operatore ??
non ha alcun senso (la valutazione lazy in realtà non si applica qui), non potrei trovare un riferimento di quel misterioso operatore da nessuna parte.
Sarebbe davvero bello se qualcuno chiarisse la questione.
http://en.wikipedia.org/wiki/Digraphs_and_trigraphs#C – qrdl
quale compilatore stai usando ? gcc, ad esempio, ignora i trigraph di default. E sì, questo deve essere * codice molto, molto vecchio *, infatti. – devnull
@devnull È gcc ma è compilato con un Makefile. E ora che so cosa sono i trigraph so anche perché c'è un flag '-trigraphs' passato al compilatore;) – user2573221