मैं यह पता लगाने की कोशिश कर रहा हूं कि मैं सी प्रीप्रोसेसर का उपयोग करके #define
'd int #define
' को 'd' स्ट्रिंग में कैसे परिवर्तित कर सकता हूं । मेरा कंपाइलर जीसीसी 4.1 सेंटोस 5 पर है। इस घोल में मिनगव के लिए भी काम करना चाहिए।
मैं एक स्ट्रिंग पर एक संस्करण संख्या को जोड़ना चाहता हूं, लेकिन मुझे काम करने का एकमात्र तरीका यह है कि स्ट्रिंग के रूप में संस्करण संख्या को परिभाषित करने की एक प्रतिलिपि बनाई जाए।
निकटतम चीज़ जो मुझे मिल सकती है, वह मैक्रो तर्कों को उद्धृत करने का एक तरीका था, लेकिन यह #define
एस के लिए काम नहीं करता है
यह काम नहीं करता है।
#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER
यह #
एस के बिना काम नहीं करता है क्योंकि मान संख्याएं हैं और इसका विस्तार होगा "/home/user/.myapp" 2 6
, जो मान्य सी नहीं है ।
यह काम करता है, लेकिन मुझे संस्करण की प्रतियां होना पसंद नहीं है क्योंकि मुझे उनकी संख्या के रूप में अच्छी तरह से आवश्यकता है।
#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