EMBOSS C source code should follow the ANSI C standard (ANSI X3.159-1989 "Programming Language C."). This version of the language is often referred to as "ANSI C", "Standard C" or "C89". The semantics of this are given in the book:
"The C Programming Language" |
Brian Kernighan and Dennis Ritchie |
2nd Edition, Prentice Hall 1988; ISBN 0-13-110362-8 |
For a definitive reference manual, see:
"C: A Reference Manual" |
Samuel P. Harbison and Guy L. Steele |
5th, Prentice Hall 2002; ISBN 0-13-089592-X. |
This standard introduced:
Function prototypes
C++ style parameter declarations (argument types are specified in the function declarations)
void
pointers
Support for international character sets and locales
A more capable preprocessor
Enumerated types (enum
)
Ability to pass structures to functions and have structures as return values
Most of these are welcome additions. In EMBOSS, passing whole structures around is deprecated because it can be wasteful of stack memory and rather slow. Each EMBOSS object (C data structure) has a pointer defined for it which should be used for referencing (see below).
If you need to write system-dependent code then try to put such functions in a separate header file to isolate them as much as possible. The AJAX library file ajsys.c
may well be suitable for such code. Remember that your code will need to work under many operating systems e.g. Linux, Windows, MacOSX etc.