मैं एक microcontroller के लिए एम्बेडेड सी कोड लिख रहा हूँ। कोड को तीन अलग सर्किट बोर्डों के बीच साझा किया जाना है, और इनपुट/आउटपुट कॉन्फ़िगरेशन प्रारंभिकरण के दौरान कुछ तालिकाओं से रन टाइम पर सेट होते हैं।संकलन समय के दौरान वैध इनपुट के लिए मैं सी फ़ंक्शन कैसे देखूं?
माइक्रोकंट्रोलर में 24 एडीसी चैनल हैं, और मेरे पास एक ऐसा फ़ंक्शन है जो एक पिन को एडीसी चैनल के रूप में सेट या साफ़ कर सकता है। इसका मतलब है कि फ़ंक्शन में इनपुट 0 से 23 (जो तालिका में सेट है) हो सकता है और कुछ भी नहीं।
मैं किसी प्रकार का प्रीप्रोसेसर या कंपाइलर "चीज" रखना चाहता हूं जो यह पहचान सकता है कि फ़ंक्शन को 0-23 के अलावा कोई मान प्राप्त हुआ है और किसी प्रकार की त्रुटि या चेतावनी फेंक दी गई है और कोड को संकलित करने से रोकें तालिका में एक अवैध मूल्य।
क्या किसी को इस बारे में कुछ सलाह है कि यह कैसे करना है?
आप स्थिर आवेषण का उपयोग कर सकते हैं। – imreal
मुझे लगता है कि आप यहां चीजों को भ्रमित कर रहे हैं। एक फ़ंक्शन रनटाइम और प्रीप्रोसेसर या कंपाइलर के दौरान इनपुट प्राप्त करता है केवल संकलन के दौरान ज्ञात सामग्री की जांच कर सकता है। आपको अपने फ़ंक्शन की शुरुआत में एक चेक जोड़ना चाहिए जो इनपुट सीमाओं को सत्यापित करेगा। – SomeWittyUsername
कारण यह है कि मैंने सोचा था कि संकलन के दौरान इसे जांचने का कोई तरीका हो सकता है कि कभी-कभी उस कार्य को पास किए गए किसी भी मूल्य को संकलित समय पर पहले से ज्ञात नहीं किया जाता है। – Adam