C Standard bei GBA Programmierung

  • Guten Abend,

    ich wollte zurzeit ein wenig in Richtung GBA Programmierung gehen und da kam

    mir eine Frage auf, die vielleicht hier welche von euch mir beantworten

    könnten.

    Was für ein C-Standard verwendet denn der GBA bzw. welcher

    wäre denn bei der GBA Architektur sinnvoll zu verwenden?

    MIr würde eventuell C89 oder C99 in den Sinn kommen.


    Mfg

    DarkGengar

  • Ich bin mir nicht absolut sicher, aber eigentlich sollte alles, was dein arm-none-eabi-gcc kompilieren kann, auch auf dem GBA umsetzbar sein. C ist ja auch nur eine Abstraktion von Assembly-Befehlen. Insofern sollte das schon funktionieren.

  • Hi,


    generell würde ich heutzutage keinen älteren Standard als den C99-Standard empfehlen.

    Dafür spricht z.B., dass man erst ab C99 bei for-Schleifen die Zählervariable in dem ersten Ausdruck deklarieren darf.


    C99 dürfte heute wohl der am meisten verwendete C-Standard sein. Neuer ist meines Erachtens nach lediglich C11.

    Ob man jedoch von dessen Features in einem Baremetal-Environment, wie bspw. auf dem GBA, profitiert ist fragwürdig.

    Aber höhere Standards haben doch neuere Features, die doch dann bestimmt schwerer für eine optimierte Kompilierung auf dem GBA

    umzusetzen sind, oder nicht?

    Das mag auf manche Sprachen und Features möglicherweise zutreffen, bei C würde ich mir da weniger Gedanken machen. C ist und bleibt eine sehr systemnahe Programmiersprache, die entwickelt wurde, sodass sie sich in sehr effizienten Maschinencode übersetzen lässt.


    Viele Änderungen an C dürften so oder so überwiegend die Standard-Library sowie das Compiler-Frontend (bsp.: Parser) betreffen, bei der Codegenerierung dürfte es folglich keinen großen Unterschied machen, ob der GCC jetzt C98-, C99- oder C11-Code übersetzt.


    ~hack!osa