Use the alternate initialization sequence, Use c operators effectively – Echelon Neuron C User Manual
Page 219
Neuron C Programmer’s Guide
207
Use the Alternate Initialization Sequence
Use of the #pragma disable_mult_module_init directive saves 2 or 3 bytes of
EEPROM code space. This directive specifies to the compiler that it should 
generate any required initialization code directly in the special init and event 
block, rather than as a separate procedure callable from the special init and
event block.
The in-line method, which is selected as a result of use of this directive, is more
efficient in memory usage (it typically saves 3 bytes if initialization code is
present, and saves 2 bytes if no initialization code is present). However, the 
drawbacks of using the directive are the following: (1) the in-line initialization 
area is limited in length, and (2) there can be no linkage from the program’s 
initialization code to application library or custom image initialization code (this 
is typically not a problem for any Neuron 3120 Chip or 3120 Smart Transceiver).
Use C Operators Effectively
The ANSI C language has a rich set of operators. Using them effectively can 
produce very efficient code. 
For example, use of the C ? : operator rather than use of an if - else statement 
for alternative assignments to the same left-hand-side can reduce code space, 
especially if the left-hand side expression is complex. 
Also, the use of multiple if - else clauses can be slightly more efficient in code 
space than a switch clause. Consider the following Before-and-After example, 
which saves 2 bytes of code: 
Before (compiles to 40 bytes of code): 
void f (unsigned c) { 
 
switch (c) {
case
'1':
 f1(); 
 break; 
 case 
'2':
 f2(); 
 break; 
 case 
'3':
 f3(); 
 break; 
 case 
'4':
 f4(); 
 break; 
 default: 
 f5(); 
 break; 
 } 
} 
After (compiles to 38 bytes of code):
void f (unsigned c) { 
 
if (c == '1') {
 f1(); 
 
} else if (c == '2') {
f2();