Неверное переопределение сегмента при записи в видеопамять на языке ассемблера

Попробуем примитивный пример. Рассмотрим

#define min(a,b) ((a)<(b))?(a):(b)

, вызывается как

c = min(a++,++b);

Конечно, реальная разница глубже, но этого должно быть достаточно, чтобы отбросить сходство с макросами.

Изменить: И нет, вы не можете обеспечить безопасность типов с помощью макросов. Как бы вы реализовали typesafe min() для каждого типа, определяющего меньше сравнения (т. Е. operrator<)?

1
задан Murpha Schnee 2 March 2019 в 01:44
поделиться