Załóżmy, że chcę un-stringify argumentu makra, który powinien przekształcić "text"
na text
.Czy istnieje sposób na usunięcie cudzysłowów w makrze C?
#define UN_STRINGIFY(x) /* some macro magic here */
Teraz nazywając to makro usunie ""
od jej argumentu
UN_STRINGIFY("text") // results in ----> text
To byłoby przeciwieństwem makro stringification:
#define STRINGIFY(x) #x
Czy to możliwe, albo ja grając z makro zło?
Co chciałbyś zrobić, gdyby to było możliwe? – iammilind
To nie jest możliwe; z ciekawości, jakie jest przeznaczenie? – dasblinkenlight
Cóż, zwykle użyłbym stringify, ale refactoruję niektóre makra i naprawdę nie chcę zmieniać wzorca wywołującego. '#define THIS_MACRO (sringParam) const char * var = stringParam;' zmieni się na '#define THIS_MACRO (stringParam) const char * un ## stringParam = stringParam;'. – syvex