beautypg.com

Preprocessor #warning directive support, Supported new features from the 1999 standard – Zilog Z8F0130 User Manual

Page 234

background image

Using the ANSI C-Compiler

UM013037-1212

210

Zilog Developer Studio II – Z8 Encore!
User Manual

The

#pragma PRAM

declaration has function scope and will affect the next function defini-

tion (as opposed to a function declaration, that is, a function prototype) that the compiler
encounters. For this reason, quite unexpected results can ensue if this pragma is used in a
function prototype, especially when function declarations and definitions are grouped sepa-
rately as is common practice. Therefore it is recommended that you avoid using this

#pragma

in function prototypes.

Preprocessor #warning Directive Support

A preprocessor line of the form

#warning

token-sequence

causes the compiler to write a warning message consisting of the token-sequence. The
compiler continues the compilation process with

#warning

as opposed to

#error

.

For example, the following line in the C source:

#warning This is a test message

causes the compiler to generate the following warning:

Test.c (2,9) : WARNING (38) "This is a test message"

Supported New Features from the 1999 Standard

The Z8 Encore! compiler implements the following new features introduced in the ANSI
1999 standard, also known as ISO/IEC 9899:1999:

C++ Style Comments

– see page 210

Trailing Comma in Enum

– see page 210

Empty Macro Arguments

– see page 211

Long Long Int Type

– see page 211

C++ Style Comments

Comments preceded by

//

and terminated by the end of a line, as in C++, are supported.

Trailing Comma in Enum

A trailing comma in

enum

declarations is allowed. This essentially allows a common syn-

tactic error that does no harm. Thus, a declaration such as

enum color {red, green, blue,} col;

is allowed (note the extra comma after

blue

).

Note: