एक सवाल एक बहु विकल्प परीक्षा में पूछा गया था: क्या निम्नलिखित कार्यक्रम के उत्पादन में हो जाएगा:टर्बो सी ++: प्रिंटफ प्रिंट अपेक्षित मान क्यों करता है, जब कोई चर नहीं पारित किया जाता है?
#include <stdio.h>
int main(void)
{
int a = 10, b = 5, c = 2;
printf("%d %d %d\n");
return 0;
}
और विकल्प 10 के विभिन्न क्रमपरिवर्तन, 5, और 2. किसी कारण थे, यह काम करता है टर्बो सी ++, जिसे हम कॉलेज में उपयोग करते हैं। हालांकि, यह gcc के साथ संकलित नहीं होता है (जो चेतावनी देता है -Wall सक्षम है) या क्लैंग (जिसमें -फॉर्मैट सक्षम है और डिफ़ॉल्ट रूप से चेतावनी देता है) या दृश्य C++ में। आउटपुट, अनुमान के रूप में, कचरा मूल्य है। मेरा अनुमान है कि इस तथ्य के साथ कुछ करना है कि या तो टर्बो सी ++ 16-बिट है, और 32-बिट विंडोज एक्सपी पर चल रहा है, या मानकों की बात करते समय टीसीसी भयानक है।
आउटपुट सचमुच कुछ भी हो सकता है, क्योंकि इस कोड के परिणामस्वरूप अपरिभाषित व्यवहार होता है। –
हाँ पूरी कंपाइलर चीज एक लाल हेरिंग है। –
जीसीसी प्रारूप विनिर्देशक में चर नाम, उदाहरण printf ("% d", x) की आवश्यकता होनी चाहिए; यदि printf कुछ मान – sujin