estoy teniendo una macro como esta (no exactamente, pero la función es bastante equivalente):Las diferencias en Macro operador ## concatenación entre Visual C++ y gcc
#define STRUCTMEMBER(Member,Value) GlobalStructInstance. ## Member = Value
...
STRUCTMEMBER(Item,1);
Esto funciona perfectamente en Visual C++, pero gcc 3.4.5 (MingGW) dió el siguiente error:
pasting "." and "Item" does not give a valid preprocessing token
Esto también sucede cuando se utiliza la "->" operador. No encontré pistas sobre la concatenación, que el uso de estos operadores está prohibido.
¿Alguien tiene una idea?
http://gcc.gnu.org/ml/gcc-help/2003-04/msg00213.html any use? – AakashM
Los espacios intencionales? – EFraim
bueno, he leído los documentos de gcc y, por lo tanto, me explicaron el ## eliminando todos los espacios, así que simplemente los coloqué para que sean legibles. Mi primera versión no tenía espacios ... –