2012-06-29 33 views
9

Duplicar posibles:
Why doesn't a+++++b work in C?
3 Plus between two variables in cDiferencia entre un +++++ b y A ++ + ++ b

He intentado buscar para esto, pero no pude encontrar ninguna resultados.

No se compila un código con c=a+++++b (gcc) mientras que para c=a++ + ++b, se compila correctamente. c=a+++ ++b también funciona. c=a++ +++b falla.

¿Por qué los espacios en blanco marcan la diferencia aquí? ¿O me falta un concepto importante de C?

+8

no estoy seguro de por qué esto está recibiendo votos hacia abajo como id, es una pregunta perfectamente válida y bien estructurada. Uno que temo que no sé la respuesta. –

+7

Me gustaría saber sobre esto ... ¿por qué está cerrado? – nullpotent

+2

Hay demasiadas preguntas como esta ya en SO. Busque por ellos – RedX

Respuesta

5

Desde ++ es un token, el analizador interpreta a+++++b lo mismo que a ++ ++ + b, que no es lo mismo que a ++ + ++ b!

+0

OP dijo 'a +++++ b' no se puede compilar. –

+0

Correcto, sí, 'a ++ ++ + b' no compila, mientras que' a ++ + ++ b' sí. Porque 'a ++ ++ + b' no tiene un significado válido. O como lo ve gcc, 'a ++' no es un valor l. –

+0

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

Cuestiones relacionadas