Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C/C++ में int main() और int main(void) का अंतर


C और C++ में main फंक्शन के दो सामान्य घोषणा स्टाइल हैं, जिनमें सूक्ष्म लेकिन महत्वपूर्ण अंतर हैं।

C में अंतर

घोषणाअर्थआर्गुमेंट्स के साथ कॉल
int main()आर्गुमेंट्स अनिर्दिष्ट (पुराना स्टाइल)किसी भी संख्या में आर्गुमेंट्स अनुमत (कोई चेक नहीं)
int main(void)कोई आर्गुमेंट नहीं (प्रोटोटाइप)कंपाइल एरर यदि आर्गुमेंट्स पास किए जाएं

उदाहरण 1: main() - आर्गुमेंट्स स्वीकार करता है

#include <stdio.h>

void my_function() { }  // कोई पैरामीटर नहीं

int main() {  // पुराना स्टाइल
    my_function(10, "Hello", "World");  // कंपाइल होता है! (चेतावनी के साथ)
    return 0;
}

उदाहरण 2: main(void) - आर्गुमेंट्स अस्वीकार करता है

#include <stdio.h>

void my_function(void) { }  // स्पष्ट void

int main(void) {  // प्रोटोटाइप
    my_function(10, "Hello", "World");  // कंपाइल एरर: too many arguments
    return 0;
}

C++ में अंतर

  • C++ में () और (void) **समानार्थी** हैं - दोनों का अर्थ "कोई पैरामीटर नहीं" है।
  • उपरोक्त दोनों उदाहरण C++ में कंपाइल एरर देंगे।

सर्वोत्तम अभ्यास

  • C: हमेशा int main(void) उपयोग करें जब कोई आर्गुमेंट न हो।
  • C++: int main() मानक और प्राथमिक है।
  • कमांड-लाइन आर्गुमेंट्स: int main(int argc, char *argv[]) या int main(int argc, char **argv) उपयोग करें।

मानक आवश्यकता

C और C++ दोनों मानकों के अनुसार, main का रिटर्न टाइप int होना चाहिए। void main() गैर-मानक है।

  1. - C/C++ में #include <filename> और #include "filename" में अंतर?

    दोनों रूपों के बीच अंतर उस स्थान में है जहां प्रीप्रोसेसर शामिल की जाने वाली फाइल को खोजता है। #include <filename> प्रीप्रोसेसर एक कार्यान्वयन-निर्भर तरीके से खोजता है, यह कंपाइलर द्वारा पूर्व-निर्दिष्ट निर्देशिकाओं में खोजता है। इस विधि का उपयोग आमतौर पर स्टैंडर्ड लाइब्रेरी हेडर फाइलों को शा

  1. - C/C++ में const int*, const int * const, और int const * में अंतर?

    उपरोक्त प्रतीकों का अर्थ निम्नलिखित है: int* - int का पॉइंटर। यह काफी स्पष्ट है। int const * - const int का पॉइंटर। int * const - int का कॉन्स्ट पॉइंटर। int const * const - const int का कॉन्स्ट पॉइंटर। यह भी ध्यान दें कि: const int * और int const * समान हैं। const int * const और int const * const स

  1. - C++ में डिक्लेरेशन और डेफिनिशन में क्या अंतर है?

    C++ में डिक्लेरेशन और डेफिनिशन अक्सर भ्रमित होते हैं। डिक्लेरेशन का अर्थ है (C में) कि आप कंपाइलर को किसी वेरिएबल, या यूजर-डिफाइंड टाइप या फंक्शन के टाइप, साइज और फंक्शन डिक्लेरेशन के मामले में उसके पैरामीटर्स के टाइप और साइज के बारे में बता रहे हैं। डिक्लेरेशन के मामले में किसी भी वेरिएबल के लिए म