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

C में _Noreturn फंक्शन स्पेसिफायर


_Noreturn (C11) या noreturn (<stdnoreturn.h> से) फंक्शन को "कभी रिटर्न नहीं करता" मार्क करता है। कंपाइलर ऑप्टिमाइज़ कर सकता है और रिटर्न स्टेटमेंट पर चेतावनी दे सकता है।

सिंटैक्स

_Noreturn void func(void);  // C11
// या
#include <stdnoreturn.h>
noreturn void func(void);

उदाहरण

#include <stdio.h>
#include <stdnoreturn.h>
#include <stdlib.h>

noreturn void abort_program() {
    printf("Fatal error! Aborting...\n");
    exit(1);  // कभी रिटर्न नहीं करता
    // return;  // Warning: function declared 'noreturn' has a 'return' statement
}

int main() {
    int x = 0;
    if (x == 0)
        abort_program();
    printf("This never prints\n");
    return 0;
}

आउटपुट

Fatal error! Aborting...

उपयोग के मामले

  • exit, abort, _Exit जैसी फंक्शन्स।
  • इनफिनाइट लूप वाले फंक्शन्स (इवेंट लूप्स, सर्वर मेन लूप)।
  • हमेशा थ्रो करने वाले फंक्शन्स (C++ में [[noreturn]])।

कंपाइलर व्यवहार

  • ऑप्टिमाइज़ेशन: कॉल के बाद कोड अनरीचेबल माना जाता है।
  • डायग्नोस्टिक: यदि फंक्शन रिटर्न करता है तो वार्निंग/एरर।
  • स्टैक फ्रेम ऑप्टिमाइज़ेशन संभव।

C++ समकक्ष

[[noreturn]] void func();  // C++11 एट्रिब्यूट सिंटैक्स
  1. - JavaScript फंक्शन से स्ट्रिंग कैसे लौटाएं?

    JavaScript फंक्शन से स्ट्रिंग लौटाने के लिए JavaScript में return स्टेटमेंट का उपयोग करें। उदाहरण return स्टेटमेंट का उपयोग करके स्ट्रिंग लौटाना सीखने के लिए निम्न कोड चलाएं: <html> <head> <script> function concatenate(name, subject) { var val; val = na

  1. - JavaScript फंक्शन से मान कैसे लौटाएं?

    JavaScript फंक्शन से मान लौटाने के लिए JavaScript में return स्टेटमेंट का उपयोग करें। मान लौटाना सीखने के लिए निम्न कोड चलाएं: उदाहरण <html> <head> <script> function concatenate(name, age) { var val; val = name + age; return val; } f

  1. जावास्क्रिप्ट फंक्शन से ऑब्जेक्ट कैसे रिटर्न करें? जावास्क्रिप्ट फंक्शन से ऑब्जेक्ट कैसे रिटर्न करें?

    जावास्क्रिप्ट फंक्शन से ऑब्जेक्ट रिटर्न करने के लिए, return स्टेटमेंट का उपयोग this कीवर्ड के साथ करें।उदाहरणजावास्क्रिप्ट फंक्शन से ऑब्जेक्ट रिटर्न करना सीखने के लिए निम्नलिखित कोड चलाएं:<html>    <head>       <script>          var