क्षमा करें यदि यह प्रश्न भोला है। निम्नलिखित कार्यक्रम पर विचार करें:
#include <stdio.h>
int main() {
int i = 1;
i = i + 2;
5;
i;
printf("i: %d\n", i);
}
उपर्युक्त उदाहरण में, कथनों 5;और i;पूरी तरह से अतिश्योक्तिपूर्ण लगता है, फिर भी कोड डिफ़ॉल्ट रूप से चेतावनियों या त्रुटियों के बिना संकलित करता है (हालांकि, जीसीसी एक warning: statement with no effect [-Wunused-value]चेतावनी को फेंक देता है जब साथ चलाया जाता है -Wall)। बाकी कार्यक्रम पर उनका कोई प्रभाव नहीं है, इसलिए उन्हें पहली बार में मान्य बयान क्यों माना जाता है? क्या कंपाइलर बस उन्हें अनदेखा करता है? क्या ऐसे बयानों की अनुमति देने का कोई लाभ है?
;उसके बाद रख कर बयान दे सकता है। यह भाषा को और अधिक नियम जोड़ने के लिए जटिल करेगा जब अभिव्यक्तियों को बयान नहीं किया जा सकता है
printf()? बयान 5;मूल रूप से कहते हैं, "जो कुछ भी करना 5है (कुछ भी नहीं) और परिणाम पर ध्यान न दें। अपने बयान printf(...)कि" जो कुछ भी करना printf(...)होता है और परिणाम की अनदेखी (से वापसी मान printf()) "। सी उन्हीं व्यवहार करता है। यह भी इस तरह के रूप कोड के लिए अनुमति देता है (void) i;जहां iहै एक फ़ंक्शन के लिए एक पैरामीटर जिसे आप voidइसे जानबूझकर अप्रयुक्त के रूप में चिह्नित करने के लिए
printf()का प्रभाव पड़ता है, भले ही आप उस मूल्य को अनदेखा कर दें जो अंततः लौटता है। इसके विपरीत 5;कोई प्रभाव नहीं पड़ता है।