Zilog Z8F0130 User Manual

Page 115

Advertising
background image

UM013037-1212

Project Menu

Zilog Developer Studio II – Z8 Encore!

User Manual

91

unsigned char uch3 = 128;

int int1;

char ch1 = -2;


int main(void)

{

puts("START");


int1 = uch1 - uch2;

if (int1 != -1)

puts("NOT EQUAL");//nopromote:00FFh != FFFFh

else

puts("EQUAL");//promote: FFFFh == FFFFh


if (uch3 < ch1)

puts("UNSIGNED");//nopromote:(uchar)80h < (uchar)FEh

else

puts("SIGNED");//promote: (int) 128 > (int) -2


puts("DONE.");

}

The following recommended programming practices are good practice in any case for pro-
ducing code that is both correct and efficient. These practices are especially important to
avoid trouble if you are using the deprecated Disable ANSI Promotions option:

Use variables of type char or unsigned char wherever the expected range of values for
the variable is [

-

128..127] or [0..255], respectively.

Use explicit casts (to int, unsigned int, long or unsigned long) in which the result of an
expression is expected to overflow the larger of the two operand types. (Even with
ANSI promotions disabled, the compiler automatically promotes a smaller operand so
that the types of the operands match.)

It is good programming practice to use explicit casts, even where automatic promo-
tions are expected.

Explicitly cast constant expressions that you want to be evaluated as char (for exam-
ple,

(char)0xFF

).

Librarian Page

The options in the Librarian page are described in this section.

This page is available for Static Library projects only.

To configure the librarian, use the following procedure:

Note:

Advertising