#error #warning C Preprocessor
Contents |
message. You would use ‘#error’ inside of c preprocessor error directive a conditional that detects a combination of
C Preprocessor Error Macro
parameters which you know the program does not properly support. For c preprocessor define example, if you know that the program will not run properly on a VAX, you might write #ifdef __vax__ c preprocessor if #error "Won't work on VAXen. See comments at get_last_object." #endif If you have several configuration parameters that must be set up by the installation in a consistent way, you can use conditionals to detect an inconsistency and report
C Preprocessor Tutorial
it with ‘#error’. For example, #if !defined(FOO) && defined(BAR) #error "BAR requires FOO." #endif The directive ‘#warning’ is like ‘#error’, but causes the preprocessor to issue a warning and continue preprocessing. The tokens following ‘#warning’ are used as the warning message. You might use ‘#warning’ in obsolete header files, with a message directing the user to the header file which should be used instead. Neither ‘#error’ nor ‘#warning’ macro-expands its argument. Internal whitespace sequences are each replaced with a single space. The line must consist of complete tokens. It is wisest to make the argument of these directives be a single string constant; this avoids problems with apostrophes and the like.
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 about Stack Overflow the company Business c preprocessor ifdef Learn more about hiring developers or posting ads with us Stack Overflow Questions Jobs Documentation c preprocessor ## operator Tags Users Badges Ask Question x Dismiss Join the Stack Overflow Community Stack Overflow is a community of 4.7 million programmers, just like
C Preprocessor Concatenate
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 I know that the #warning directive is not standard C/C++, but several https://gcc.gnu.org/onlinedocs/cpp/Diagnostics.html 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 at 20:00 Brian Tompsett - 汤莱恩 3,083112675 asked Oct 5 '08 at 3:40 jonner 3,03041827 add a comment| 5 http://stackoverflow.com/questions/171435/portability-of-warning-preprocessor-directive 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 -Werror file.c] yields [file.c:10:9: note: #pragma message: Foo bar baz] So it produces a "note" that is not treated as a warning (i.e. It doesn't fail the build with -Werror enabled). But it appears parse correctly (as a
article is written like a manual or guidebook. Please help rewrite this article from a https://en.wikipedia.org/wiki/C_preprocessor descriptive, neutral point of view, and remove advice or instruction. https://www.techonthenet.com/c_language/directives/warning.php (February 2013) (Learn how and when to remove this template message) This article includes a list of references, but its sources remain unclear because it has insufficient inline citations. Please help to improve this article by introducing more precise citations. (March 2015) c preprocessor (Learn how and when to remove this template message) (Learn how and when to remove this template message) The C preprocessor or cpp is the macro preprocessor for the C and C++ computer programming languages. The preprocessor provides the ability for the inclusion of header files, macro expansions, conditional compilation, and line c preprocessor error control. In many C implementations, it is a separate program invoked by the compiler as the first part of translation. The language of preprocessor directives is only weakly related to the grammar of C, and so is sometimes used to process other kinds of text files. Contents 1 Phases 1.1 Including files 1.2 Conditional compilation 1.3 Macro definition and expansion 1.4 Special macros and directives 1.4.1 Token stringification 1.4.2 Token concatenation 1.5 User-defined compilation errors 2 Implementations 2.1 Compiler-specific preprocessor features 3 Other uses 4 See also 5 References 6 External links Phases[edit] Preprocessing is defined by the first four (of eight) phases of translation specified in the C Standard. Trigraph replacement: The preprocessor replaces trigraph sequences with the characters they represent. Line splicing: Physical source lines that are continued with escaped newline sequences are spliced to form logical lines. Tokenization: The preprocessor breaks the result into preprocessing tokens and whitespace. It replaces com
MySQL MariaDB PostgreSQL SQLite MS Office Excel Access Word Web Development HTML CSS Color Picker Languages C Language More ASCII Table Linux UNIX Java Clipart Techie Humor Advertisement C Language Introduction Compiling and Linking File Naming Preprocessor Directives #include #define #undef #if #ifdef #ifndef #elif #else #endif #warning #error Comments Variables Integer Variables Float Variables First Program assert.h Functions ctype.h Functions locale.h Functions math.h Functions setjmp.h Functions signal.h Functions stdarg.h Functions stdio.h Functions stdlib.h Functions string.h Functions time.h Functions NEXT: #error C Language: #warning Directive This C tutorial explains how to use the #warning preprocessor directive in the C language. Description In the C Programming Language, the #warning directive is similar to an #error directive, but does not result in the cancellation of preprocessing. Information following the #warning directive is output as a message prior to preprocessing continuing. Syntax The syntax for the #warning directive in the C language is: #warning message message The message to output prior to continuing preprocessing. Example Let's look at how to use #warning directives in your C program. The following example shows the output of the #warning directive: /* Example using #warning directive by TechOnTheNet.com */ #include