2013-09-21 11 views
10

मैं सी भाषा में एक नौसिखिया हूं। क्या कोई विवरण का उपयोग करके विस्तार से समझा सकता है कि मुख्य भाषा(), int मुख्य(), शून्य मुख्य(), मुख्य (शून्य), शून्य मुख्य (शून्य), int मुख्य (शून्य) सी भाषा में कैसे काम करता है? जब हम शून्य मुख्य() का उपयोग करते हैं और जब मैं सरल भाषा में int मुख्य() का उपयोग करता हूं तो क्या हो रहा है और इसी तरह क्या हो रहा है।
मुझे पता है, लेकिन नहीं कर सकते समझते हैं कि यह क्या है कर:int मुख्य() और शून्य मुख्य() कैसे काम करता है

  1. मुख्य() - फ़ंक्शन पूर्णांक मूल्य
  2. शून्य मुख्य() - - समारोह कुछ भी नहीं देता है आदि समारोह कोई तर्क
  3. पूर्णांक मुख्य() है

जब मैं int मुख्य() वापसी 0 का उपयोग करके सरल हैलो दुनिया लिखता हूं तो यह मुझे शून्य मुख्य()) का उपयोग करते समय भी वही आउटपुट देता है, तो यह कैसे काम करता है? इसका आवेदन क्या है?

+5

'शून्य मुख्य()' एक संकेत है कि आप एक पाठ्यपुस्तक कोई है जो सी भाषा बहुत अच्छी तरह से पता नहीं है द्वारा लिखित उपयोग कर रहे हैं के रूप में मुख्य रूप से उपयोगी है। आपके द्वारा सूचीबद्ध रूपों में से केवल 'int main (शून्य) 'मान्य है। (यह * काफी * इतना आसान नहीं है, लेकिन यह अभी के लिए काफी करीब है।) –

उत्तर

19

न तो main() या void main() मानक सी पूर्व अनुमति दी है के रूप में यह एक अंतर्निहित int वापसी मान है, int main() के रूप में यह एक ही बना रहे हैं। main का वापसी मूल्य का उद्देश्य exit status ऑपरेटिंग सिस्टम पर वापस करना है।

मानक सी में, main के लिए ही मान्य हस्ताक्षर कर रहे हैं:

int main(void) 

और

int main(int argc, char **argv) 

प्रपत्र का उपयोग कर रहे: int main() एक पुरानी शैली घोषणा कि main इंगित करता है एक अनिर्दिष्ट लेता है तर्कों की संख्या। इसका उपयोग न करें - उपर्युक्त में से एक का चयन करें।

+1

फिर से शुरू करने के लिए, उन्हें पुराने सी कोड के साथ संगतता की अनुमति दी जाती है जब ऑपरेटिंग सिस्टम को बाहर निकलने की स्थिति की आवश्यकता नहीं होती है। आपको हमेशा 'मुख्य' – Jack

+2

@ जैक में एक पूर्णांक मान वापस करना होगा:' शून्य मुख्य() 'किसी भी चीज़ के पीछे की संगतता के लिए नहीं है। वही मानक जिसने पहली बार 'शून्य' कीवर्ड पेश किया था, 'मुख्य' के रिटर्न प्रकार को' int' के रूप में परिभाषित करता है। –

+0

int मुख्य (int argc, const char ** argv, const char ** env) – dns

0

int main रिटर्न integer मूल्य

जबकि

void main रिटर्न nothing

8

तुम सच में एएनएसआई सी 89 को समझने के लिए चाहते हैं, तो मैं एक बात आप को सही करने की जरूरत है; ANSI C 89 निम्नलिखित कार्यों के बीच अंतर में:

int main() 
int main(void) 
int main(int argc, char* argv[]) 

है:

int main()

  • एक समारोह है कि अज्ञात प्रकार की बहस के अज्ञात संख्या की उम्मीद है। एप्लिकेशन सॉफ़्टवेयर स्थिति का प्रतिनिधित्व करने वाला एक पूर्णांक देता है।

int main(void)

  • एक समारोह है कि कोई तर्क की उम्मीद है। एप्लिकेशन सॉफ़्टवेयर स्थिति का प्रतिनिधित्व करने वाला एक पूर्णांक देता है।

int main(int argc, char * argv[])

  • एक समारोह है कि तर्क और argv [] तर्कों की argc संख्या की उम्मीद है। एप्लिकेशन सॉफ़्टवेयर स्थिति का प्रतिनिधित्व करने वाला एक पूर्णांक देता है।

जब कार्यों

पूर्णांक मुख्य (शून्य)

  • आप जब अपने कार्यक्रम चलाने के लिए कोई प्रारंभिक मानकों की जरूरत है इस सुविधा का उपयोग करने की आवश्यकता है/लोड से प्रत्येक का उपयोग कर के बारे में (ओएस से प्राप्त पैरामीटर - प्रोग्राम के बाहर स्वयं)।

पूर्णांक मुख्य (int argc, char * argv [])

  • आप जब अपने कार्यक्रम प्रारंभिक मानकों की जरूरत है लोड करने के लिए इस सुविधा का उपयोग करने की जरूरत है (पैरामीटर ओएस से प्राप्त - बाहर कार्यक्रम के स्वयं इसे)।

बारे void main()

एएनएसआई सी 89 में, जब void main का उपयोग करने और परियोजना -ansi -pedantic के रूप में संकलन (उबंटू में, उदाहरण के लिए) आप यह दर्शाता है अपने मुख्य कार्य प्रकार का शून्य है कि और की नहीं एक चेतावनी दी जाएगी int टाइप करें, लेकिन आप प्रोजेक्ट को चलाने में सक्षम होंगे। अधिकांश सी डेवलपर अपने सभी प्रकारों पर int main() का उपयोग करते हैं, हालांकि void main() संकलित भी होंगे।

आशा है कि मदद करता है!

गुड लक और खुश कोडिंग

संबंधित मुद्दे