![kueller](/assets/img/avatar_default.png)
git-svn-id: svn://svn.compuextreme.de/Viitor/V962/Viitor_cc65@4352 504e572c-2e33-0410-9681-be2bf7408885
77 lines
2.2 KiB
HTML
77 lines
2.2 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.20">
|
|
<TITLE>cc65 Users Guide: Differences to the ISO standard</TITLE>
|
|
<LINK HREF="cc65-5.html" REL=next>
|
|
<LINK HREF="cc65-3.html" REL=previous>
|
|
<LINK HREF="cc65.html#toc4" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="cc65-5.html">Next</A>
|
|
<A HREF="cc65-3.html">Previous</A>
|
|
<A HREF="cc65.html#toc4">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s4">4.</A> <A HREF="cc65.html#toc4">Differences to the ISO standard</A></H2>
|
|
|
|
|
|
<P>Here is a list of differences between the language, the compiler accepts,
|
|
and the one defined by the ISO standard:</P>
|
|
<P>
|
|
<UL>
|
|
<LI> The compiler allows unnamed parameters in parameter lists. The
|
|
compiler will not issue warnings about unused parameters that don't
|
|
have a name. This feature can be disabled with the <CODE>
|
|
<A HREF="cc65-2.html#option--standard">--standard</A></CODE> command line option.
|
|
|
|
</LI>
|
|
<LI> The compiler has some additional keywords:
|
|
<P>
|
|
<UL>
|
|
<LI><CODE>asm</CODE></LI>
|
|
<LI><CODE>__asm__</CODE></LI>
|
|
<LI><CODE>fastcall</CODE></LI>
|
|
<LI><CODE>__fastcall__</CODE></LI>
|
|
<LI><CODE>__AX__</CODE></LI>
|
|
<LI><CODE>__EAX__</CODE></LI>
|
|
<LI><CODE>__func__</CODE></LI>
|
|
<LI><CODE>__attribute__</CODE></LI>
|
|
</UL>
|
|
</P>
|
|
<P>The keywords without the underlines can be disabled with the
|
|
<CODE>
|
|
<A HREF="cc65-2.html#option--standard">--standard</A></CODE> command line
|
|
option.</P>
|
|
|
|
</LI>
|
|
<LI> The datatypes "float" and "double" are not available.
|
|
|
|
</LI>
|
|
<LI> The compiler does not support bit fields.
|
|
|
|
</LI>
|
|
<LI> C Functions may not return structs (or unions), and structs may not
|
|
be passed as parameters by value. However, struct assignment *is*
|
|
possible.
|
|
|
|
</LI>
|
|
<LI> Part of the C library is available only with fastcall calling
|
|
conventions (see below). It means that you must not mix pointers to
|
|
those functions with pointers to user-written, not-fastcall functions.
|
|
|
|
</LI>
|
|
</UL>
|
|
</P>
|
|
<P>There may be some more minor differences I'm currently not aware of. The
|
|
biggest problem is the missing float data type. With this limitation in
|
|
mind, you should be able to write fairly portable code.</P>
|
|
|
|
|
|
|
|
<HR>
|
|
<A HREF="cc65-5.html">Next</A>
|
|
<A HREF="cc65-3.html">Previous</A>
|
|
<A HREF="cc65.html#toc4">Contents</A>
|
|
</BODY>
|
|
</HTML>
|