Next: 4.7 Cyclomatic Complexity
 Up: 4. SDCC Technical Data
 Previous: 4.5 External Stack
     Contents 
     Index 
Deviations from the compliancy.
- functions are not always reentrant.
 
- structures cannot be assigned values directly, cannot be passed as
function parameters or assigned to each other and cannot be a return
value from a function, e.g.: 
 
struct s { ... };  
struct s s1, s2;  
foo()  
{  
    ...  
    s1 = s2 ; /* is invalid in SDCC although allowed
in ANSI */  
    ...  
} 
struct s foo1 (struct s parms) /* is invalid in SDCC although
allowed in ANSI */  
{  
    struct s rets;  
    ...  
    return rets;/* is invalid in SDCC although allowed
in ANSI */  
} 
- 'long long' (64 bit integers) not supported.
 
- 'double' precision floating point not supported.
 
- No support for setjmp and longjmp (for now).
 
- Old K&R style function declarations are NOT allowed.
 
foo(i,j) /* this old style of function declarations */
 
int i,j; /* are valid in ANSI but not valid in SDCC */
 
{  
    ...  
} 
- functions declared as pointers must be dereferenced during the call.
 
int (*foo)(); 
...  
/* has to be called like this */  
(*foo)(); /* ansi standard allows calls to be made like
'foo()' */ 
 
 
 
 
 
 Next: 4.7 Cyclomatic Complexity
 Up: 4. SDCC Technical Data
 Previous: 4.5 External Stack
     Contents 
     Index 
Johan Knol
2001-07-13