__attribute__
का उपयोग करने के तरीके हैं लेकिन ये आपके कंपाइलर और कोड के लिए बहुत विशिष्ट हैं जो इनके द्वारा लिखे गए हैं वास्तव में पोर्टेबल नहीं हैं। दूसरी ओर, सी भाषा कोई स्टार्ट-अप मॉड्यूल/पुस्तकालय प्रदान नहीं करती है।
सी में, तार्किक main()
पहले समारोह ओएस द्वारा कहा जाता है। लेकिन main()
पर कॉल करने से पहले, ओएस ने विभिन्न पर्यावरण चर सेट करने के लिए start-up
मॉड्यूल नामक एक और फ़ंक्शन को कॉल किया, प्रारंभिक (अन-प्रारंभिक) स्थैतिक चर प्रारंभ करें, एक स्टैक फ्रेम (सक्रियण रिकॉर्ड) बनाएं और स्टैक क्षेत्र की शुरुआत में स्टैक पॉइंटर प्रारंभ करें और अन्य main()
पर कॉल करने से पहले किए जाने वाले कार्यों को करना होगा।
कहें कि क्या आप एम्बेडेड सिस्टम के लिए कोड लिख रहे हैं, जहां ऊपर उल्लिखित काम करने के लिए कोई न्यूनतम या न्यूनतम ओएस नहीं है, तो आपको इन विकल्पों का पता लगाना चाहिए जो संकलक निर्भर हैं। जीसीसी के अलावा, टर्बो-सी और माइक्रोसॉफ्ट सी कंपाइलर्स एक विशेष हार्डवेयर मशीन (एफई 8086 मशीन) में कोड जोड़ने के लिए सुविधाएं प्रदान करते हैं।
आईओओ, स्टार्ट-अप मॉड्यूल प्रोग्रामर के लिए नहीं हैं।
स्रोत
2012-01-03 14:44:15
http://stackoverflow.com/questions/949890/how-can-i-perform-pre-main-initialization-in-cc-with-avr-gcc – stacker
@stacker - सवाल आप का उल्लेख करने के लिए विशिष्ट है Arduino पर्यावरण। वैसे भी, उत्तर उपयोगी हो सकता है। – mouviciel