मेरे पास एक PIC18F46K22 है और इसे XC8 कंपाइलर के साथ प्रोग्राम करें। अंत में, मेरे पास एक पीसी जैसा सिस्टम होगा stdin
और stdout
। तो मुख्य लूप में एक फ़ंक्शन होगा जो कि नया इनपुट होने पर जाँच कर रहा है। यदि इनपुट है, तो तदनुसार एक फ़ंक्शन कहा जाएगा। उदाहरण के लिए जब मैं इनपुट पर एक ए stdin
, पीआईसी की तरह एक समारोह चलेगा function_A
बजाय function_B
जो कहा जाता है जब मैं एक बी इनपुट
जब PIC फ़ंक्शन के साथ किया जाता है, तो मैं चाहता हूं कि नया इनपुट फ़ंक्शन को भेजा जाए। इसलिए जब A दबाने से RS232 ट्रांसमीटर खुलता है, उसी क्षण से हर इनपुट RS232 के ऊपर भेजा जाएगा। अंत में प्रोजेक्ट एक स्टैंड-अलोन टेक्स्ट एडिटर है। इसलिए जब A दबाने से फाइल सिस्टम खुल जाता है, उस क्षण से आप टेक्स्ट एडिटिंग नहीं कर रहे हैं, बल्कि फाइलों की एक सूची देख रहे हैं। इसका मतलब है कि ऊपर और नीचे दबाने का मतलब है कि पाठ-संपादन के माहौल की तुलना में कुछ अलग है।
मैंने यह सोचने के लिए बहुत कुछ किया है कि इसे सी में कैसे प्रोग्राम किया जाए। मैंने कल रात यह सोचा था और जानना चाहूंगा कि क्या यह संभव है और यदि हां, तो कैसे। मुझे क्या करना है:
main
समारोह की तरह एक फ़ंक्शन को कॉलfunction_A
function_A
function_addr
फ़ंक्शन के पॉइंटर के वैश्विक चर को बदलता हैin_function_A
- उस क्षण से, नया इनपुट होने
main
पर फ़ंक्शन को कॉल करताfunction_addr
है।
तो मुझे क्या चाहिए एक main
फ़ंक्शन जो चेक करता है कि function_addr
क्या शून्य है। यदि ऐसा है, तो एक 'सामान्य' फ़ंक्शन को बुलाया जाना चाहिए, जैसे function_A
। यदि ऐसा नहीं है, तो समारोह को function_addr
बुलाया जाना चाहिए। मुझे एक पॉइंटर को function_A
बदलने की भी आवश्यकता function_addr
है in_function_A
।
नोट: जब फाइल सिस्टम फ़ंक्शन बंद is_function_A
होना चाहिए , तो बस function_addr
0 में बदलना चाहिए ।
तो मूल रूप से मेरा सवाल यह है कि मैं कैसे कर सकता हूं
- किसी फ़ंक्शन का पता प्राप्त करें (और इसे किसी चर में संग्रहीत करें)
- एक निर्दिष्ट पते पर एक फ़ंक्शन को कॉल करें