जब मैंने निम्न प्रोग्राम संकलित किया: g++ -O2 -s -static 2.cpp
यह मुझे चेतावनी ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
दिया।
लेकिन जब मैं -02
को संकलित कथन से हटाता हूं तो कोई चेतावनी नहीं दिखायी जाती है।'int scanf (const char *, ...)' के वापसी मूल्य को अनदेखा करते हुए, विशेषता चेतावनी_unused_result [-उन्यूज्ड-परिणाम] के साथ घोषित किया गया?
मेरे 2.cpp
कार्यक्रम:
#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
return 0;
}
इस चेतावनी का अर्थ क्या है और -O2
का अर्थ क्या है ??
तो मैं इस चेतावनी को कैसे हटा सकता हूं क्योंकि आज तक मैंने जिन सभी सी कार्यक्रमों को लिखा है, मैंने कभी स्कैनफ के वापसी मूल्य की जांच नहीं की !!! यह अनुकूलन पैरामीटर क्या आप कुछ प्रकाश फेंक सकते हैं? –
@perh क्या यह एक अच्छा कारण है? – Antonio
ठीक है, जांच नहीं है कि प्रोग्राम गलत मान वापस कर देगा यदि किसी भी चर को sscanf द्वारा सेट नहीं किया गया है (अनियमित मानों का उपयोग करके)। यह सिर्फ एक चेतावनी है, एक त्रुटि नहीं। क्योंकि यह संकलक द्वारा किए गए विश्लेषण की कमी के कारण (कम से कम) -O का उपयोग नहीं करते समय दिखाया नहीं जा रहा है - यह वही है। – perh