1. Си / Говнокод #25512

    0

    1. 1
    2. 2
    3. 3
    enum {
    #include "opcodes"
    };

    Хотел юзать один файл с перечислением и в "Си" и в "fasm", но только потом понял, что в "fasm" так не получится :(

    Запостил: BOKCEJIbHblu_nemyx, 05 Апреля 2019

    Комментарии (22) RSS

    • Где-то видел include, который можно было бы включать и в С, и в ассемблер:
      #if 0
      // Hardware-specific definitions file
      /* assembler does not support C/C++ comments, so preprocessor it out */
      #endif
      
      #if 0
      // Some bits definitions
      #endif
      #define FOO_BIT 0
      #define BAR_BIT 1
      #define BAZ_BIT 2
      Ответить
      • Месиво какое-то. У меня в "opcodes" просто идентификаторы через запятую. Но я так и не смог придумать, как надефайнить эти константы в "fasm".
        Ответить
        • А я делал крестоблядскую метушню, которая умеет переводить структуры на асм. Заодно и константы переводит, но это уже тривиально.
          Ответить
          • Как это выглядит? Просто не охота этот список в 2-х файлах писать и следить за тем, чтобы он там и там был одинаковый.

            Хотя наверное лучше просто скриптцом в сорцы при сборке вставлять.
            Ответить
            • Для констант можно тупо собрать экзешник, который инклудит хедер с ними и высирает имена и значения на stdout в нужном тебе формате. Обмажешь макросами по вкусу.
              Ответить
            • Для структур - идея та же самая (экзешник, срущий асмом в stdout), только метушнёй в духе boost fusion собирается инфа о полях.
              Ответить
    • показать все, что скрытоvanished
      Ответить
    • А что ты такое пишешь, воксельный петух?
      Ответить
    • И здесь поспамь.
      Ответить

    Добавить комментарий