Próbuję dowiedzieć się, jak mogę połączyć #define
„d int z #define
ciągiem” za pomocą preprocesora C. Mój kompilator to GCC 4.1 na CentOS 5. Rozwiązanie powinno również działać dla MinGW.
Chciałbym dołączyć numer wersji do łańcucha, ale jedynym sposobem, w jaki mogę go uruchomić, jest zrobienie kopii numeru wersji zdefiniowanego jako ciągi.
Najbliższą rzeczą, jaką udało mi się znaleźć, była metoda cytowania argumentów makr, ale nie działa ona w przypadku #define
s
To nie działa.
#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER
To nie działa bez #
s albo ponieważ wartości są liczbami i byłoby rozszerzyć do "/home/user/.myapp" 2 6
, który nie jest ważny C .
To działa, ale nie lubię mieć kopii definicji wersji, ponieważ potrzebuję ich również jako liczb.
#define MAJOR_VER 2
#define MINOR_VER 6
#define MAJOR_VER_STR "2"
#define MINOR_VER_STR "6"
#define MY_FILE "/home/user/.myapp" MAJOR_VER_STRING MINOR_VER_STRING