को देखते हुए:सी मैक्रो तर्क 'भंडारण'
#define f(x, y) (x+y)
#define g(x, y) (x*y)
#define A 1, 2
#define B 2, 3
int main() {
int a = f(A);
int b = g(A);
int c = f(B);
int d = g(B);
}
जो काम नहीं करता,
कैसे मैं यह काम कर सकते हैं? मूल विचार यह है कि मेरे पास तर्कों की एक सूची है कि मैं हर बार लंबे तर्कों की सूची दोहराए बिना दो अलग-अलग मैक्रोज़ पास करना चाहता हूं।
क्या ऐसा करने का कोई तरीका है? [आप f & जी संशोधित करने के लिए आपका स्वागत है; जिस तरह से मैं मैक्रोज़ को कॉल करता हूं, आपको & संशोधित करने के लिए भी आपका स्वागत है। केवल आवश्यकताएँ हैं: 1) arguemnt सूची केवल एक बार 2) यह मुश्किल कोडित नहीं किया जा सकता दिखाई दे सकता है ... तो यह है कि मैं अलग तर्क
साथ मैक्रो कॉल कर सकते हैं आप समाधान नहीं करता है तो काफी काम लेकिन 'लगभग काम करता है' (लगभग आपकी परिभाषा के लिए), मैं इसे भी सुनना चाहता हूं, शायद मैं इसे काम करने के लिए परेशान कर सकता हूं।
धन्यवाद!
संपादित करें: एफ & जी मैक्रोज़ होना चाहिए। वे प्रतीक नामों को पकड़ते हैं और उन्हें कुशल बनाते हैं।
साथ काम करता है आप अपने मूल प्रश्न की आवश्यकताओं को बदल रहे हैं एक संस्करण, एक उपयुक्त उदाहरण प्रदान करें जो दर्शाती है कि आप वास्तव में चाहते हैं। –