मैं यह पता लगाने की कोशिश कर रहा हूं कि c प्रीप्रोसेसर का उपयोग करके मैं #define
'd int को #define
' d स्ट्रिंग को कैसे जोड़ सकता हूं। मेरा कंपाइलर CentOS 5 पर जीसीसी 4.1 है। समाधान को MinGW के लिए भी काम करना चाहिए।सी प्रीप्रोसेसर का उपयोग कर स्ट्रिंग करने के लिए int intenenate
मैं एक स्ट्रिंग पर एक संस्करण संख्या जोड़ना चाहता हूं, लेकिन एकमात्र तरीका यह है कि मैं इसे काम पर ला सकता हूं, संस्करण संख्या की एक प्रति स्ट्रिंग के रूप में परिभाषित करना है।
मैक्रो तर्कों को उद्धृत करने का एक तरीका था जो मुझे मिल सकता था, लेकिन यह #define
s
के लिए काम नहीं करता है यह काम नहीं करता है।
#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER
यह #
s के बिना काम नहीं करता है क्योंकि मान संख्याएं हैं और यह "/home/user/.myapp" 2 6
तक विस्तारित होगा, जो वैध C मान्य नहीं है।
यह काम करता है, लेकिन मुझे संस्करण की प्रतियां परिभाषित नहीं करना पसंद है क्योंकि मुझे उन्हें संख्याओं के रूप में भी आवश्यकता है।
#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
की संभावित डुप्लिकेट [कन्वर्ट एक स्ट्रिंग के लिए एक पूर्वप्रक्रमक टोकन] (http://stackoverflow.com/questions/240353/convert-a-preprocessor-token-to-a-string) –