আমার কাছে একটি PIC18F46K22 আছে এবং এটি এক্সসি 8 সংকলক সহ প্রোগ্রাম করে। শেষ পর্যন্ত, আমার সাথে একটি পিসির মতো সিস্টেম থাকবে stdin
এবং stdout
। মূল লুপটিতে একটি ফাংশন থাকবে যা পরীক্ষা করে দেখছে যে কোনও নতুন ইনপুট রয়েছে কিনা। যদি ইনপুট থাকে তবে সেই অনুযায়ী একটি ফাংশন ডাকা হবে। সুতরাং উদাহরণস্বরূপ, যখন আমি কোনও এ ইনপুট করি তখন stdin
পিআইসি একটি ফাংশন চালাবে যার function_A
পরিবর্তে function_B
যখন আমি বি বি ইনপুট করি তখন বলা হয় is
যখন পিআইসি ফাংশনটি সম্পন্ন হয়, আমি চাই যে নতুন ইনপুটটি ফাংশনে প্রেরণ করা হোক। সুতরাং যখন টিপুন তখন আরএস 232 ট্রান্সমিটারটি খোলে, সেই মুহুর্ত থেকে প্রতিটি ইনপুট আরএস 232 এর মাধ্যমে প্রেরণ করা হবে। শেষ পর্যন্ত প্রকল্পটি একটি একা একা পাঠ্য সম্পাদক। সুতরাং এ টিপে যখন ফাইল সিস্টেমটি খোলে তখন সেই মুহুর্ত থেকে আপনি আর পাঠ্য সম্পাদনা করছেন না তবে ফাইলগুলির একটি তালিকা দেখছেন। তার মানে হল যে উপরে এবং ডাউন টিপানোর অর্থ পাঠ্য-সম্পাদনা পরিবেশের চেয়ে আলাদা কিছু।
আমি সিটিতে এই প্রোগ্রামটি কীভাবে করব তা নিয়ে আমি অনেক চিন্তাভাবনা করেছি এবং আমি এটি কাল রাতে চিন্তা করেছিলাম এবং এটি সম্ভব কিনা এবং যদি তা হয় তবে তা কীভাবে তা জানতে চাই। আমি যা করতে চাই তা হ'ল:
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 তে পরিবর্তিত হওয়া উচিত ।
সুতরাং মূলত আমার প্রশ্ন আমি কীভাবে পারি
- কোনও ফাংশনের ঠিকানা পান (এবং এটি একটি ভেরিয়েবলে সঞ্চয় করুন)
- একটি নির্দিষ্ট ঠিকানায় একটি ফাংশন কল করুন