No, non vedo alcun motivo per questo. Altri hanno detto che è possibile avere piattaforme con "zero negativo", ma tale zero negativo non può mai essere prodotto da questa espressione, quindi questo è inutile.
Il paragrafo corrispondente nello standard C è 6.2.6.2 p3, corsivo è mio:
Se l'implementazione supporta zeri negativi, essi devono essere generati solo da :
- il &, |, ^, ~, < <, e >> operatori con operandi che producono un tale valore;
- gli operatori +, -, *, /, e% in cui un operando è uno zero negativo e il risultato è zero;
- composto operatori di assegnazione in base ai casi precedenti.
Per produrre uno zero negativo su tale piattaforma si potrebbe usare ~INT_MAX
, per esempio, ma che non sarebbe uno zero per altre rappresentazioni, in modo che il codice non sarebbe molto portabile.
fonte
2015-09-22 14:14:52
Se l'architettura di destinazione ha '0' negativo per' int' – Olaf
Forse è una tilde '~' non un meno '-'? –
@Olaf: quali architetture avevano questo e perché era utile? –