#error Preprocessor Message
Contents |
resources Windows Server 2012 resources Programs MSDN subscriptions Overview Benefits Administrators Students Microsoft Imagine Microsoft Student Partners ISV Startups TechRewards Events Community Magazine Forums Blogs Channel 9 Documentation APIs and reference Dev error preprocessor directive centers Retired content Samples We’re sorry. The content you requested has been removed.
C Preprocessor Message
You’ll be auto redirected in 1 second. C/C++ Preprocessor Reference Preprocessor Preprocessor Directives Preprocessor Directives #error Directive #error Directive
Preprocessor Warning Message
#error Directive #define Directive #error Directive #if, #elif, #else, and #endif Directives #ifdef and #ifndef Directives #import Directive #include Directive #line Directive Null Directive #undef Directive #using Directive TOC Collapse the table
#error In C
of content Expand the table of content This documentation is archived and is not being maintained. This documentation is archived and is not being maintained. #error Directive (C/C++) Visual Studio 2015 Other Versions Visual Studio 2013 Visual Studio 2012 Visual Studio 2010 Visual Studio 2008 Visual Studio 2005 Visual Studio .NET 2003 The #error directive emits a user-specified error message at compile time #error c++ and then terminates the compilation.Syntax Copy #errortoken-string RemarksThe error message that this directive emits includes the token-string parameter. The token-string parameter is not subject to macro expansion. This directive is most useful during preprocessing for notifying the developer of a program inconsistency or the violation of a constraint. The following example demonstrates error processing during preprocessing: Copy #if !defined(__cplusplus) #error C++ compiler required. #endif See AlsoPreprocessor Directives Show: Inherited Protected Print Export (0) Print Export (0) Share IN THIS ARTICLE Is this page helpful? Yes No Additional feedback? 1500 characters remaining Submit Skip this Thank you! We appreciate your feedback. Dev centers Windows Office Visual Studio Microsoft Azure More... Learning resources Microsoft Virtual Academy Channel 9 MSDN Magazine Community Forums Blogs Codeplex Support Self support Programs BizSpark (for startups) Microsoft Imagine (for students) United States (English) Newsletter Privacy & cookies Terms of use Trademarks © 2016 Microsoft © 2016 Microsoft
here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss the workings and policies of this site About Us Learn more #error in c example about Stack Overflow the company Business Learn more about hiring developers or posting ads #error gcc with us Stack Overflow Questions Jobs Documentation Tags Users Badges Ask Question x Dismiss Join the Stack Overflow Community Stack #warning in c Overflow is a community of 4.7 million programmers, just like you, helping each other. Join them; it only takes a minute: Sign up Portability of #warning preprocessor directive up vote 38 down vote favorite 2 https://msdn.microsoft.com/en-us/library/c8tk0xsk.aspx I know that the #warning directive is not standard C/C++, but several compilers support it, including gcc/g++. But for those that don't support it, will they silently ignore it or will it result in a compile failure? In other words, can I safely use it in my project without breaking the build for compilers that don't support it? c++ compiler-construction warnings c-preprocessor portability share|improve this question edited Jun 3 http://stackoverflow.com/questions/171435/portability-of-warning-preprocessor-directive at 20:00 Brian Tompsett - 汤莱恩 3,083112675 asked Oct 5 '08 at 3:40 jonner 3,03041827 add a comment| 5 Answers 5 active oldest votes up vote 19 down vote accepted It is likely that if a compiler doesn't support #warning, then it will issue an error. Unlike #pragma, there is no recommendation that the preprocessor ignore directives it doesn't understand. Having said that, I've used compilers on various different (reasonably common) platforms and they have all supported #warning. share|improve this answer answered Oct 5 '08 at 3:53 Greg Hewgill 508k1088761043 add a comment| up vote 60 down vote It should be noted that MSVC uses the syntax: #pragma message ( "your warning text here" ) The usual #warning syntax generates a fatal error C1021: invalid preprocessor command 'warning' so it is not portable to those compilers. share|improve this answer answered Nov 11 '08 at 0:30 nolandda 1,09721015 19 This is one of the rare cases, when MS does things in the right way. –doc Aug 5 '10 at 14:05 Is MSVC syntax portable? I mean, would it properly generate a warning with other compilers? –aka.nice Jun 11 '13 at 13:34 Just ran a quick check using gcc-4.7.2. [$ gcc -c
here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss the workings and policies of this site About Us Learn more http://stackoverflow.com/questions/5323349/error-directive-in-c about Stack Overflow the company Business Learn more about hiring developers or posting ads http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_preprocessor.error.html with us Stack Overflow Questions Jobs Documentation Tags Users Badges Ask Question x Dismiss Join the Stack Overflow Community Stack Overflow is a community of 4.7 million programmers, just like you, helping each other. Join them; it only takes a minute: Sign up #error directive in C? up vote 21 down vote favorite 4 Can in c you please give the information about #error directive in C? What is #error directive? what the use of it? c share|improve this question edited Mar 13 '13 at 23:21 Kornel 62.2k24135197 asked Mar 16 '11 at 5:59 PHP 1,16631739 migrated from programmers.stackexchange.com Mar 16 '11 at 9:38 This question came from our site for professional programmers interested in conceptual questions about software development. 4 This seems more like #error in c a question for stackoverflow.com –jmort253 Mar 16 '11 at 6:29 add a comment| 3 Answers 3 active oldest votes up vote 24 down vote accepted It's a preprocessor directive that is used (for example) when you expect one of several possible -D symbols to be defined, but none is. #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 When the preprocessor hits the #error directive, it will report the string as an error message and halt compilation; what exactly the error message looks like depends on the compiler. share|improve this answer answered Mar 16 '11 at 6:09 geekosaur 34.5k47390 1 That is one paranoid null statement... –Chris Lutz Mar 16 '11 at 9:40 Wouldn't it be more appropriate to say it halts preprocessing? I guess preprocessing can be viewed as a step in compilation, but it can definitely be done as a separate step, and is internally performed as a separate step, so it fails/reports a fatal error earlier on than a compilation error. –RastaJedi Apr 19 at 19:57 add a comment| up vote 12
tokens Description #error emits tokens to standard error, and increments the assembler error counter, hereby preventing the program from being successfully assembled. #error is specified in the ANSI C standard. #warning emits tokens to standard error, and increments the assembler warning counter. #warning is not specified in the ANSI C standard, but is commonly implemented in preprocessors such as the GNU C preprocessor. #message emits tokens to standard output, and does not affect assembler error or warning counters. #message is not specified in the ANSI C standard.For all directives, the output will include file name and line number, like normal error and warning messages.tokens is a sequence of preprocessor tokens. Preprocessor macros are expanded except if appearing inside quoted strings (").Example #error "Unsupported part:" __PART_NAME__ PrevUpNextHomeContentsSearchDocumentation HomeAVR AssemblerPrefaceAVR Assembler Known IssuesAVR Assembler Command Line OptionsAssembler sourceAVR Assembler SyntaxAssembler directivesAVR Assembler PreprocessorIntroductionPreprocessor directives#define#undef#ifdef#ifndef#if and #elif#else#endif#error, #warning and #message#include#pragma, general purpose#pragma , AVR part related# (empty directive)OperatorsStringification (#)Concatenation (##)Pre-defined macrosExpressionsInstruction mnemonicsArithmetic and logic instructionsBranch InstructionsData Transfer InstructionsBit and Bit-test InstructionsI/O RegistersInstruction Set Nomenclature:Instructions ADC - Add with Carry ADD - Add without Carry ADIW - Add Immediate to Word AND - Logical AND ANDI - Logical AND with Immediateand ASR - Arithmetic Shift Right BCLR - Bit Clear in SREG BLD - Bit Load from the T Flag in SREG to a Bit in Register. BRBC - Branch if Bit in SREG is Cleared BRBS - Branch if Bit in SREG is Set BRCC - Branch if Carry Cleared BRCS - Branch if Carry Set BREAK - Break BREQ - Branch if Equal BRGE - Branch if Greater or Equal Signed) BRHC - Branch if Half Carry Flag is Cleared BRHS - Branch if Half Carry Flag is Set BRID - Branch if Global Interrupt is Disabled BRIE - Branch if Global Interrupt is Enabled BRLO - Branch if Lower (Unsigned) BRLT - Branch if Less Than (Signed) BRMI - Branch if Minus BRNE - Branch if Not Equal BRPL - Branch if Plus BRSH - Branch if Same or Higher (Unsigned) BRTC - if the T Flag is Cleared BRTS - Branch if the T Flag is Set BRVC - Branch if Overflow Cleared BRVS - Branch if Overflow Set B