दिलचस्प पोस्ट
हवाज और वेब एपीआई के साथ गणना की गई संपत्तियों को संभालना WPF DataGrid प्रदर्शन में सुधार करें PHP5: कॉन्स्ट बनाम स्थिर क्लिक समारोह के बाद jquery लाइट आईडी / मूल्य प्राप्त करें सही पक्ष पर बूटस्ट्रैप 4 navbar आइटम WPF ICommand MVVM कार्यान्वयन DisplayName विशेषता का मान प्राप्त करें HTML5 "डाउनलोड" विशेषता के लिए समर्थन का पता कैसे लगाया जाता है? सब्लाइम टेक्स्ट 2 में रनिंग कोड (मैक ओएस एक्स) एंड्रॉइड Geofence अंत में संक्रमण इरादों हो रही बंद करो (दीप) jQuery का उपयोग कर एक सरणी की नकल PHP में डाल / हटाएं तर्क संभालना Proguard का उपयोग करके लॉग कॉल निकाल रहा है पायप्शन में प्लॉटिंग टाइम में मेटप्ललिब के साथ JQuery के अजाक्स अनुरोध प्रत्येक एक्स मिनट पर कॉल करें

# वायरिंग प्रीप्रोसेसर निर्देश की पोर्टेबिलिटी

मुझे पता है कि # चेतावनी निर्देश मानक C / C ++ नहीं है, लेकिन कई कंपाइलर्स इसका समर्थन करते हैं, जिसमें जीसीसी / जी ++ शामिल है लेकिन उन लोगों के लिए जो इसका समर्थन नहीं करते हैं, क्या वे चुपचाप इसे अनदेखा करेंगे या इससे कोई संकलन विफल हो जाएगा? दूसरे शब्दों में, क्या मैं इसे अपने कंपाइलरों के निर्माण के बिना इसे बिना किसी प्रोजेक्ट का उपयोग सुरक्षित रूप से उपयोग कर सकता हूं जो इसका समर्थन नहीं करता है?

Solutions Collecting From Web of "# वायरिंग प्रीप्रोसेसर निर्देश की पोर्टेबिलिटी"

ऐसा लगता है कि यदि कोई संकलक # चेतावनी का समर्थन नहीं करता है, तो यह एक त्रुटि जारी करेगा। # प्रगामा के विपरीत, कोई सिफारिश नहीं है कि प्रीप्रोसेसर उस निर्देशों की उपेक्षा करता है जो इसे समझ में नहीं आता है।

मैंने कहा है कि, मैंने विभिन्न विभिन्न (सामान्य रूप से सामान्य) प्लेटफॉर्म पर कम्पाइलर का उपयोग किया है और उनके पास सभी #warning का समर्थन है

यह ध्यान दिया जाना चाहिए कि MSVC वाक्यविन्यास का उपयोग करता है:

 #pragma संदेश ("यहां आपकी चेतावनी पाठ")

सामान्य # चेतावनी सिंटैक्स एक गंभीर त्रुटि उत्पन्न करता है

 C1021: अमान्य प्रीप्रोसेसर कमांड 'चेतावनी'

तो यह उन कंपाइलर के लिए पोर्टेबल नहीं है

आपको कम से कम ऐसी अपरिचित निर्देशित चेतावनी प्राप्त होने की संभावना है जो # वॉर्निंग पहचान नहीं करते, भले ही कोड ब्लॉक आपके संकलन में शामिल न हो। यह संभवतः या त्रुटि के रूप में इलाज नहीं किया जा सकता है – संकलक इसे वैध रूप से एक त्रुटि के रूप में इलाज कर सकता है, लेकिन बहुत अधिक ढीली होनी चाहिए।

क्या आप जीसीसी / जी ++ के अलावा अन्य संकलक को जानते हैं (जो आप नाम दे सकते हैं) जो # चेतावनी प्रदान करता है? [ संपादित: सन सॉलेरिस 10 (स्पार्क) और स्टूडियो 11 सी / सी + + कंपाइलर्स दोनों को # वॉर्निंग स्वीकार करते हैं।]

मुझे एटम प्रोसेसर के लिए कंपाइलर के साथ एक बार समस्या थी। और यह अज्ञात # चेतावनी टोकन के कारण पूर्वप्रक्रमक त्रुटियां उत्पन्न करता है

दुर्भाग्य से, समाधान पूरे स्रोत पेड़ को #pragma समतुल्य का उपयोग करने के लिए परिवर्तित करने के लिए लग रहा था और स्वीकार करता है कि जीसीसी का उपयोग करते समय बिल्ड वर्जन अलग होता जा रहा था।

वास्तव में सबसे अधिक संकलक जिन्हें मैं अज्ञात # प्रगामा निर्देशों की उपेक्षा करने के बारे में जानता हूं, और एक चेतावनी संदेश आउटपुट करता है – इसलिए सबसे बुरी स्थिति में, आपको अभी भी एक चेतावनी मिलेगी

मिंगव से विज़ुअल स्टूडियो तक स्विच करते समय, मैंने अपने वैश्विक कॉन्फ़िगरेशन हैडर में ऐसी पंक्तियाँ जोड़ दीं (इसे stdafx.h में शामिल करें)

 #ifdef __GNUC__ //from https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html //Instead of put such pragma in code: //#pragma GCC diagnostic ignored "-Wformat" //use: //PRAGMA_GCC(diagnostic ignored "-Wformat") #define DO_PRAGMA(x) _Pragma (#x) #define PRAGMA_GCC(x) DO_PRAGMA(GCC #x) #define PRAGMA_MESSAGE(x) DO_PRAGMA(message #x) #define PRAGMA_WARNING(x) DO_PRAGMA(warning #x) #endif //__GNUC__ #ifdef _MSC_VER /* #define PRAGMA_OPTIMIZE_OFF __pragma(optimize("", off)) // These two lines are equivalent #pragma optimize("", off) PRAGMA_OPTIMIZE_OFF */ #define PRAGMA_GCC(x) // https://support2.microsoft.com/kb/155196?wa=wsignin1.0 #define __STR2__(x) #x #define __STR1__(x) __STR2__(x) #define __PRAGMA_LOC__ __FILE__ "("__STR1__(__LINE__)") " #define PRAGMA_WARNING(x) __pragma(message(__PRAGMA_LOC__ ": warning: " #x)) #define PRAGMA_MESSAGE(x) __pragma(message(__PRAGMA_LOC__ ": message : " #x)) #endif //#pragma message "message quoted" //#pragma message message unquoted //#warning warning unquoted //#warning "warning quoted" PRAGMA_MESSAGE(PRAGMA_MESSAGE unquoted) PRAGMA_MESSAGE("PRAGMA_MESSAGE quoted") #warning "#pragma warning quoted" PRAGMA_WARNING(PRAGMA_WARNING unquoted) PRAGMA_WARNING("PRAGMA_WARNING quoted") 

अब मैं PRAGMA_WARNING का उपयोग करता हूं (यह तय करने की आवश्यकता है)

अफसोस की बात है कि जीसीसी में कोई #pragma warning नहीं है, इसलिए यह अनिर्दिष्ट pragma चेतावनी देता है।

मुझे संदेह है कि जीसीसी #pragma warning" को जोड़ने के बजाय #pragma warning" माइक्रोसॉफ्ट जोड़ #pragma warning"