Suite Deficiencies

Compiler (sccz80)

Multi-dimensional Arrays

Multi-dimensional arrays are not supported. They can be emulated in software by partitioning creating a single large array and calculating offsets.

Typedefs

Typedefs are supported, but typedefs to pointers are not, eg:

typedef int  newvar_t;

is supported, but:

typedef int  *newvar_t;

is not.

Function pointers

Are supported, but they can’t be prototyped, for example:

int (*func)();

is supported, but:

int (*func)(int val, char *str);

is not. This is unfortunate in terms of type safety, but during development you could use something like this to provide type safety:

#ifdef DEVELOPMENT
#define CALLIT(f,v,s)  callmyfunc(f,v,s)
#else
#define CALLIT(f,v,s) f(f,s)
#endif   
 
#ifdef DEVELOPMENT
int callmyfunc(int (*func)(), int val, char *str)
{
   return func(val,str);
}
#endif

Bitfields

Bitfields are not supported.

Expression Folding

Expressions are evaluated left to right, and no folding is applied, as a result (1 + j + 3) will generate bulkier code than ( j + 1 + 3 ).

Assembler (z80asm)

 
programming/deficient.txt · Last modified: 2007/01/10 23:51 by dom
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki