पर विचार करें निम्नलिखित C99 समारोह:क्या कोई डमी लैवल्यू है जिसका प्रयोग तब किया जा सकता है जब कुछ भी निष्पादित नहीं किया जाता है?
void port_pin_set(const bool value, const uint8_t pin_mask)
{
if (value) {
PORT |= pin_mask;
} else {
PORT &= ~pin_mask;
}
}
PORT
एक define
जा रहा है, उदाहरण के लिए:
- इसे स्वीकार कर लिया जाता है:
#define PORT (P1OUT)
वहाँ
PORT
को फिर से परिभाषित करने के लिए इतना है कि एक रास्ता है एक lvalue के रूप में, - समारोह कोई भी नहीं करता है जी।
मैं क्या करना चाहता हूं, फ़ंक्शन स्रोत को रखना, जबकि इसे कुछ भी करने के लिए संकलित करना है।
संपादित करें: मुझे पता है कि इस तरह के एक लाभा का उपयोग सबसे अच्छा समाधान नहीं हो सकता है। मैं इस विशिष्ट समस्या के लिए सबसे अच्छा समाधान नहीं ढूंढ रहा हूं, मुझे भाषा में दिलचस्पी है। यह एक सैद्धांतिक सवाल है, व्यावहारिक नहीं है। आपके मामले के लिए
#ifdef PORT
#undef PORT
#endif
#define PORT int x = 0; x
:
मुझे लगता है कि असली सवाल यह है कि आप ऐसा क्यों करना चाहते हैं? एक दिलचस्प सी प्रीप्रोसेसर जादू प्रश्न के दौरान, मुझे संदेह है कि आपको वास्तव में ऐसा करने की ज़रूरत है। –
मैं अधिक उत्सुक हूँ। मैं संकलन कमांड से फ़ाइल को हटा देता, लेकिन फ़ंक्शन में एक शीर्षलेख फ़ाइल में एक इनलाइन परिभाषा होती है जिसमें कई स्थानों पर '# शामिल' है। – Gauthier
आप फ़ंक्शन –