2009-11-15 15 views
14

मैक्रोज़ में परिभाषित तारों को संयोजित करने का सबसे आसान तरीका क्या है। यानी छद्म कोड मैं तलाश कर रहा हूँ होगा की तरह:मैक्रोज़ में तारों को जोड़ना - सी ++

#define ROOT_PATH "/home/david/" 
#define INPUT_FILE_A ROOT_PATH+"data/inputA.bin" 
#define INPUT_FILE_B ROOT_PATH+"data/inputB.bin" 
... 
#define INPUT_FILE_Z ROOT_PATH+"data/inputZ.bin" 

एक ही रास्ता मैं के बारे में पता कोड, या स्ट्रिंग वर्ग और उसके बाद c_str विधि का उपयोग कर में strcat उपयोग करने के लिए है, लेकिन यह प्राप्त कर सकते हैं गन्दा जब मेरे पास बहुत सारी इनपुट फाइलें हैं। मैं केवल INPUT_FILE_A, आदि का उपयोग करना चाहता हूं और इसमें बहुत से स्थानीय चर नहीं हैं। क्या ऐसा करने का कोई अच्छा तरीका है?

धन्यवाद।

#define ROOT_PATH "/home/david/" 
#define INPUT_FILE_A ROOT_PATH "data/inputA.bin" 

या अधिक सामान्य:

उत्तर

42

संकलक स्वचालित रूप से आसन्न तार जोड़ होगा

#define INPUT_FILE_DETAIL(root,x) root #x 
#define INPUT_FILE(x) INPUT_FILE_DETAIL(ROOT_PATH "data/", x) 
-3

शैल था "खाने" उद्धरण। तो, निम्न पंक्ति का उपयोग करना था:

-DROOT_PATH=\"some-string"\ 
संबंधित मुद्दे