#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
|