क्या आप सी में #error
निर्देश के बारे में जानकारी दे सकते हैं?# सी में आतंक निर्देश?
#error
निर्देश क्या है? इसका क्या उपयोग है?
क्या आप सी में #error
निर्देश के बारे में जानकारी दे सकते हैं?# सी में आतंक निर्देश?
#error
निर्देश क्या है? इसका क्या उपयोग है?
यह एक प्रीप्रोसेसर निर्देश है जिसका उपयोग किया जाता है (उदाहरण के लिए) जब आप कई संभावित -D
प्रतीकों को परिभाषित करने की अपेक्षा करते हैं, लेकिन कोई भी नहीं है।
#if defined(BUILD_TYPE_NORMAL)
# define DEBUG(x) do {;} while (0) /* paranoid-style null code */
#elif defined(BUILD_TYPE_DEBUG)
# define DEBUG(x) _debug_trace x /* e.g. DEBUG((_debug_trace args)) */
#else
# error "Please specify build type in the Makefile"
#endif
जब पूर्वप्रक्रमक #error
निर्देश मारता है, यह एक त्रुटि संदेश और पड़ाव संकलन के रूप में स्ट्रिंग रिपोर्ट करेंगे; त्रुटि संदेश कैसा दिखता है वास्तव में संकलक पर निर्भर करता है।
के लिए एक प्रश्न की तरह लगता है कि यह एक पागल नल स्टेटमेंट है ... –
क्या यह कहना उचित नहीं होगा कि यह प्रीप्रोकैसिंग रोकता है? मुझे लगता है कि प्रीप्रोकैसिंग को संकलन में एक चरण के रूप में देखा जा सकता है, लेकिन यह निश्चित रूप से एक अलग चरण के रूप में किया जा सकता है, और आंतरिक रूप से एक अलग चरण के रूप में किया जाता है, इसलिए यह संकलन त्रुटि से पहले घातक त्रुटि को विफल/रिपोर्ट करता है। – RastaJedi
मैं अमान्य कोड, लेकिन इसके कुछ की तरह हो सकता है ...
#if defined USING_SQLITE && defined USING_MYSQL
#error You cannot use both sqlite and mysql at the same time
#endif
#if !(defined USING_SQLITE && defined USING_MYSQL)
#error You must use either sqlite or mysql
#endif
#ifdef USING_SQLITE
//...
#endif
#ifdef USING_MYSQL
//...
#endif
संकलक इस लाइन को संकलित करता है तो यह एक संकलक गंभीर त्रुटि दिखाता है: और इस कार्यक्रम के आगे संकलन रोक:
#include<stdio.h>
#ifndef __MATH_H
#error First include then compile
#else
int main(){
float a,b=25;
a=sqrt(b);
printf("%f",a);
return 0;
}
#endif
Output:compiler error --> Error directive :First include then compile
यह http://stackoverflow.com – jmort253