#pragma warn Macro Directive in C | Suppress Warning Messages
Topics : How to Suppress Warning Messages in C ?
- What is Warning Message in C ?
- What is Error and Message in C ?
- #pragma warn Directive in C
- Live Example
- List of Warning Codes in ANSI
Warning Message :
- A warning is a non-critical condition that does not require immediate attention.
- Warning can be ignored.
- Waring will never stop your execution of C Program.
Error Message
- An Error is a critical condition that requires immediate attention.
- Error messages cannot be ignored.
- Compile Error won’t let you to run C Program.
- run Time Error will terminate current execution of C program
#pragma warn Macro Directive in C
- In c there are many warning messages which can be on or off with help of #pragma warn.
Syntax :
#pragma warn +xxx #pragma warn –xxx #pragma warn .xxx
Where
+ means on - means off . means on/off (toggle)
- xxx is indicate particular warning code in thee alphabet.
- Example : rvl warning code means function should return a value.
Live Example :
#include<stdio.h> #pragma warn –rvl int main(){ printf("It will not show any warning message"); }
Explanation :
- -rvl mean suppress warning message .
- rvl means : “Function should return a value“.
- We have specified return type of main as “Integer” but we are not going to return a value.
- Usually this program will show warning message.
- We have suppressed warning already (-rvl) so we won’t get any warning message.
- Standard notation and there actual meaning is shown inside following table -
List of Warning Codes in C
S.N. | Warning message | Code |
ANSI Violations | ||
1 | Assigning ‘type’ to ‘enumeration’ | eas |
2 | Bit fields must be signed or unsigned int | bbf |
3 | Both return and return with a value used | ret |
4 | Declare type ‘type’ prior to use in prototype | dpu |
5 | Division by zero | zdi |
6 | Hexadecimal value contains more than 3 digits | big |
7 | Initializing ‘enumeration’ with ‘type’ | bei |
8 | ‘identifier’ is declared as both external and static | ext |
9 | Ill-formed pragma | ill |
10 | Initialization is only partially bracketed | pin |
11 | Redefinition of ‘macro’ is not identical | dup |
12 | Suspicious pointer conversion | sus |
13 | Undefined structure ‘structure’ | stu |
14 | Void functions may not return a value | voi |
Frequent Errors | ||
1 | Code has no effect | eff |
2 | Function should return a value | rvl |
3 | Parameter ‘parameter’ is never used | par |
4 | Possible use of ‘identifier’ before definition | def |
5 | Possibly incorrect assignment | pia |
6 | Unreachable code | rch |
Less Frequent Errors | ||
1 | Ambiguous operators need parentheses | amb |
2 | Array variable ‘identifier’ is near | ias |
3 | Call to function with no prototype | pro |
4 | Call to function ‘function’ with no prototype | pro |
5 | Condition is always false | wccc |
6 | Condition is always true | wccc |
7 | ‘identifier’ declared but never used | use |
8 | ‘identifier’ is assigned a value that is never used | aus |
9 | No declaration for function ‘function’ | nod |
10 | Structure passed by value | stv |
11 | Superfluous & with function | amp |
Portability Warnings | ||
1 | Constant is long | cln |
2 | Constant out of range in comparison | rng |
3 | Conversion may lose significant digits | sig |
4 | Non portable pointer comparison | cpt |
5 | Non portable pointer conversion | rpt |
6 | Mixing pointers to signed and unsigned char | ucp |