atari-home.de - Foren

Software => Coding => Thema gestartet von: Arne am Do 04.11.2010, 07:16:15

Titel: predefined macros (C-Compiler)
Beitrag von: Arne am Do 04.11.2010, 07:16:15
Moin zusammen,

da ich mich im nächsten Jahr auch wieder mit der SW-Entwicklung auf dem ST beschäftigen will, wäre es für mich ganz hilfreich, wenn die "predefined macros" der verschiedenen auf dem ST genutzten C-Compiler (C-Präprozessoren) bekannt wären, damit der Code möglichst auf allen Compilern baut.
Ich habe gestern abend im Pure-C Handbuch geblättert und spezifisch für diesen Compiler nur das __PUREC__ Macro gefunden. Wenn das definiert ist, dann baut der Code gerade unter Pure-C. Wie sieht es mit anderen Compiler aus (Lattice, Megamax...)? Am Ende würde ich ein Headerfile für Atari zusammenstellen, wie ich es schon seit 10 Jahren beruflich für die benutzten Microcontroller auch mache und dann veröffentlichen.

Gruß, Arne
Titel: Re: predefined macros (C-Compiler)
Beitrag von: Arthur am Do 04.11.2010, 07:30:54
Ich glaube den Megamax brauchst Du nicht zu beachten da zu alt.

Über Lattice 5.6 findest Du hier was. (http://www.schupp.lt/Atari/ckurs/download/lc_560.zip)


Der AHCC ist ein freier Purec C kompatibler Compiler der auch Code für den Coldfire erzeugen kann. (http://members.chello.nl/h.robbers/)


Atari Kompendium. (http://www.schupp.lt/Atari/ckurs/download/TAC.pdf)

Atari Profibuch ST-STE-TT (http://www.atariprofibuch.de/ATARI%20Profibuch%20ST-STE-TT.pdf)
Titel: Re: predefined macros (C-Compiler)
Beitrag von: Arne am Do 04.11.2010, 07:43:16
Ich glaube den Megamax brauchst Du nicht zu beachten da zu alt.
Der Vollständigkeit halber...  ;)

Danke für die Links - vom AHCC habe ich bisher nichts gelesen (war ja auch 6 Jahre "weg").
Den GST habe ich schon aussen vor gelassen. IIRC konnte der nichtmal floats!

Benutzt hier jemand noch C-Compiler abseits von:
Gruß, Arne
Titel: Re: predefined macros (C-Compiler)
Beitrag von: tuxie am Do 04.11.2010, 07:46:12
Eigentlich sind nur noch gcc ahcc und pure-c die compiler die verwendet werden. Ich denke das sich das in nächster zeit auf ahcc und gcc beschränken wird da beide weiter entwickelt werden.
Titel: Re: predefined macros (C-Compiler)
Beitrag von: Arthur am Do 04.11.2010, 07:46:48
Der GNU C wir natürlich auch viel verwendet. Ich bin aber noch kein Programmierer. ;)
Titel: Re: predefined macros (C-Compiler)
Beitrag von: tuxie am Do 04.11.2010, 07:48:28

GCC = Gnu C Compiler  ;)
Titel: Re: predefined macros (C-Compiler)
Beitrag von: Arthur am Do 04.11.2010, 08:32:03
Schon klar Ingo. Der VBCC (http://sun.hasenbraten.de/vbcc/) könnte auch interessant sein da er sehr schnellen Code erstellt.
Titel: Re: predefined macros (C-Compiler)
Beitrag von: Arne am Do 04.11.2010, 08:40:48

GCC = Gnu C Compiler  ;)
Ganz richtig GNU Compiler Collection  ;)

VBCC kommt mit auf die Liste.
Titel: Re: predefined macros (C-Compiler)
Beitrag von: tuxie am Do 04.11.2010, 08:44:57
Schon klar Ingo. Der VBCC (http://sun.hasenbraten.de/vbcc/) könnte auch interessant sein da er sehr schnellen Code erstellt.

Sieht aber so aus als wäre er nur für den Amiga, wobei man ihn sicher auch portieren kann.
Titel: Re: predefined macros (C-Compiler)
Beitrag von: Arne am Do 04.11.2010, 08:47:48
Schau mal weiter unten (violett hinterlegte Zeilen) und ganz unten die grünen: TOS & MinT
Titel: Re: predefined macros (C-Compiler)
Beitrag von: tuxie am Do 04.11.2010, 09:03:39
Ups garnicht gesehen! Hab nur oben den Kopf gelesen.
Titel: Re: predefined macros (C-Compiler)
Beitrag von: gstoll am Do 04.11.2010, 18:02:07
Compiler nur das __PUREC__ Macro gefunden.

__GNUC__      = GCC
__PUREC__    = Pure C
__TURBOC__ = Turbo C (Vorgänger von Pure C) , Pure C, AHCC
__AHCC__      = AHCC
__SOZOBONC__ = Sozobon C
LATTICE            = Lattice C (bin ich mir nicht ganz sicher)
__MWERKS__ = CodeWarrior 11 mit C-Compiler >= 7.1 ?
_MSC_VER       = MSVC 2.0?

Gerhard
Titel: Re: predefined macros (C-Compiler)
Beitrag von: m0n0 am Do 04.11.2010, 19:34:26
Hallo,

evt. ist diese deklaration von Interesse, sollte unter allen Compilern verlässliche Typen bereitstellen:

typedef signed   char  BYTE;
typedef unsigned char  CHAR;
typedef signed   short WORD;
typedef unsigned short UWORD;
typedef signed   long  LONG;
typedef unsigned long  ULONG;
Titel: Re: predefined macros (C-Compiler)
Beitrag von: simonsunnyboy am Do 04.11.2010, 21:23:29
Normierte Datentypen sind immer gut! Dann macht es allerdings mehr Sinn die Typen gleich mittels stdint.h zu definieren, wie im C99 Standard. Dann ist es nämlich echt portabel, auch zu kommenden Compilern.

vgl. http://en.wikipedia.org/wiki/Stdint.h (http://en.wikipedia.org/wiki/Stdint.h)
Titel: Re: predefined macros (C-Compiler)
Beitrag von: gstoll am Fr 05.11.2010, 06:03:24
Normierte Datentypen sind immer gut!
Stimmt, aus dem Grund werden sie im tos.hyp genutzt[1] .

Dazu hilft vielleicht der Header aus der PCGEM.LIB oder PCTOS.LIB[2]. Im acstype.h wird so ziemlich alles an Typen definiert was es so gibt.

Gerhard

[1] Mir ist bekannt, daß noch nicht alles Umgesetzt ist.
[2] http://acspro.atari.org/
Titel: Re: predefined macros (C-Compiler)
Beitrag von: Arne am Fr 05.11.2010, 06:06:22
Normierte Datentypen sind immer gut! Dann macht es allerdings mehr Sinn die Typen gleich mittels stdint.h zu definieren, wie im C99 Standard. Dann ist es nämlich echt portabel, auch zu kommenden Compilern.

Genauso sehe ich das auch, wobei meine bisher selbstdefinierten fast identisch zu stdint.h sind - bis auf das '_t' am Ende. Dieses BYTE, WORD erinnert mich mehr an Pascal. Wenn ich so einen Code lese, kann ich mir nie intuitiv was darunter vorstellen. In der letzten Firma hatte man das zeitweise auch so gemacht - einer der vielen Gründe warum ich nicht mehr dort bin  ;D

In Pure C kann man ja auch die CPU für den zu erzeugenden Code eingeben. Gibt es dazu auch vordefinierte Macros?