में एक tuple परिभाषित करें मैं एक tuple परिभाषित करने में सक्षम होना चाहता हूँ जो अन्य मैक्रोज़ द्वारा आवश्यक तर्कों का प्रतिनिधित्व करता है।# सी
मुझे लगता है कि मैं चाहता हूँ एक उदाहरण दिखाने के लिए है दिखाने के लिए सबसे अच्छा तरीका है:
LED_DDR |= 1 << LED_PIN
समस्या यह है कि मैं पाने के लिए है:
#include <avr/io.h>
#define LED_PORT PORTB
#define LED_DDR DDRB
#define LED_PIN PB7
#define LED LED_PORT, LED_DDR, LED_PIN
#define OUTPUT(port, ddr, pin) ddr |= 1 << pin
void main(void) {
OUTPUT(LED);
}
मैं चाहता हूँ OUTPUT(LED)
तो में विस्तार किया जा करने के लिए विस्तार के क्रम के साथ करें, और निम्नलिखित त्रुटि में परिणाम:
macro "OUTPUT" requires 3 arguments, but only 1 given
यह है कस्टम निर्मित हार्डवेयर के साथ एक एवीआर प्रोजेक्ट के साथ उपयोग करें जहां मैंने LED
और संबंधित LED_PORT
LED_DDR
और LED_PIN
के साथ अन्य घटक परिभाषित किए हैं।
मैं फिर अधिक मैक्रोज़ को परिभाषित करना चाहता हूं जो इस एलईडी को ले जा सकते हैं और संभवतः सबसे संक्षिप्त तरीके से मानचित्र के लिए उपयुक्त तर्कों का उपयोग कर सकते हैं।
क्या यह मानक सी-प्रीप्रोसेसर के साथ संभव है?
'LET_PIN' और' LET_PORT' और 'LET_DDR' और' OUTPUT' की परिभाषा दिखाएं। तो * इसे सुधारने के लिए * अपना प्रश्न संपादित करें। –
मैं इस प्रश्न को टैग [सी: प्रीप्रोसेसर] के साथ टैग करूंगा। – Michas
क्या हम मान सकते हैं कि 'पोर्ट बी', 'डीडीआरबी', 'पीबी 7' शाब्दिक पूर्णांक स्थिरांक हैं? –