Załóżmy, że mamCzy istnieje sposób, aby sprawdzić, czy wartości nie numerycznej makro
#define Name Joe
Czy istnieje sposób, aby odróżnić różne wartości dla makra. Poniższa nie działa, ale masz pomysł
#if Name==Joe
// some code
#elif Name==Ben
// some alternative code
#endif
chcę wykorzystać do różnych plików generowanych obiektów z tego samego kodu źródłowego. Źródło różni się tylko nieznacznie, więc można je łatwo kontrolować za pomocą makr. Makro należy przekazać za pomocą flagi kompilatora -DName=Joe
. Należy również zauważyć, że Name
będzie rzeczywista nazwa symbol, więc nie możemy używać sztuczek opartych na #define Joe 1
itp
przymusowej edit Zauważ, że this similar question faktycznie zajmuje makr ciąg wycenione. Co więcej, odpowiedzi tam nie pomagają. Przyjęta odpowiedź pozwala uniknąć problemu (ale go nie rozwiązuje), inna odpowiedź używa strcmp
w makrach, które bazują na rozszerzeniu, itp.
Czy funkcja nie działa? Jaki jest w tym przypadek? – NathanOliver
Prawdopodobnie nie chcesz tego (problem XY) –
@NathanOliver zobacz edycję – Walter