2012-06-29 28 views
9

Eventuali duplicati:
Why doesn't a+++++b work in C?
3 Plus between two variables in cDifferenza tra un b +++++ e A ++ ++ + b

Ho provato a cercare per questo, ma non ho trovato alcuna risultati.

Un codice con c=a+++++b fallisce la compilazione (GCC), mentre per c=a++ + ++b, si compila con successo. c=a+++ ++b funziona anche. c=a++ +++b non riesce.

Perché lo spazio bianco fa la differenza qui? O mi manca un importante concetto di C?

+8

non proprio sicuro del motivo per cui questo sta ricevendo voti negativi, dal momento che si tratta di una domanda perfettamente valida e ben strutturata. Uno che ha paura di non sapere la risposta a se. –

+7

Mi piacerebbe sapere ... perché è chiuso? – nullpotent

+2

Ci sono troppe domande come questa già su SO. Cerca per loro – RedX

risposta

5

Dal ++ è un token, il parser interpreta a+++++b la stessa a ++ ++ + b, che non è lo stesso di a ++ + ++ b!

+0

OP ha detto che 'a +++++ b' non riesce a compilare. –

+0

Esatto, sì, 'a ++ ++ + b' non viene compilato, mentre' a ++ ++ ++ b' fa. Perché 'a ++ ++ + b' non ha un significato valido. O come gcc lo vede, 'a ++' non è un lvalue. –

+0

duplicato esatto http://stackoverflow.com/questions/5341202/why-doesnt-ab-work-in-c/5677289#5677289 – RedX

Problemi correlati