मैक्रो से जानकारी का उपयोग कर एक सी ++ # परिभाषित मैक्रो को फिर से परिभाषित करना संभव है? मैंने नीचे दिए गए कोड की कोशिश की, लेकिन मैक्रोज़ का मूल्यांकन करने के तरीके के कारण आउटपुट की अपेक्षा नहीं थी।मैक्रो से जानकारी का उपयोग कर एक सी ++ # परिभाषित मैक्रो को फिर से परिभाषित करने के लिए कैसे?
#include <iostream>
#define FINAL_DEFINE "ABC"
#define NEW_DEFINE FINAL_DEFINE "DEF" // Want ABCDEF
#undef FINAL_DEFINE
#define FINAL_DEFINE NEW_DEFINE // Want ABCDEF, but get empty?
int main()
{
std::cout << FINAL_DEFINE << std::endl; // Want ABCDEF, but doesn't compile.
}
मैंने प्रश्न को और स्पष्ट करने के लिए अद्यतन किया। अगर यह अभी भी संदिग्ध है तो मुझे बताएं। – Jeff
असल में: संभव नहीं है, क्योंकि क्रिस डोड के जवाब बताते हैं। एक कामकाज के रूप में आपको इंटरमीडिएट परिभाषित करने के लिए एक अलग नाम का उपयोग करना होगा (पहले 2 लाइनों पर FINAL_DEFINE)। –