Новая версия платформы MetaTrader 5 build 5830: общие улучшения - страница 17

 
Slava #:
Если вы не хотите видеть сообщение "macro XXX redefinition" , то ваша проверка не катит

Нет такого сообщения в этом примере.

Вы документацию читаете?

https://www.mql5.com/ru/docs/basis/preprosessor/constant

Директива #undef предназначена для отмены макроса, объявленного ранее.

 
Botan626 #:

Нет такого сообщения в этом примере.

Вы документацию читаете?

https://www.mql5.com/ru/docs/basis/preprosessor/constant

Директива #undef предназначена для отмены макроса, объявленного ранее.

Не зарывайтесь.

Уберите #undef и убедитесь

 
Slava #:
Уберите #undef и убедитесь

Тогда конечно будет это сообщение.

Но в вашем же примере есть #undef...

 
Slava #:

Если вы не хотите видеть сообщение "macro XXX redefinition" , то ваша проверка не катит

Пример:

Неизвестно где был определён макрос TEST_SIZE и был ли он определён, но я хочу выставить новое его значение

Если я не хочу видеть то сообщение, то поступлю также как описывал выше:

#ifdef TEST_SIZE
   #undef TEST_SIZE
#endif
#define TEST_SIZE 20

 
Sergey Gridnev #:
Если я не хочу видеть то сообщение, то поступлю также как описывал выше:

#ifdef TEST_SIZE
   #undef TEST_SIZE
#endif
#define TEST_SIZE 20

давайте #undef MACROS без предварительного #define объявим ошибкой?
 
Slava #:
давайте #undef MACROS без предварительного #define объявим ошибкой?
предупреждение можно выводить
 
Slava #:
давайте #undef MACROS без предварительного #define объявим ошибкой?
Лично я не почувствую неудобств. 🤷‍♂️
Но, по крайней мере, предупреждение было бы логично выдавать.
 
Sergey Gridnev #:
Лично я не почувствую неудобств. 🤷‍♂️
Но, по крайней мере, предупреждение было бы логично выдавать.
Зачем?
 
Slava #:
давайте #undef MACROS без предварительного #define объявим ошибкой?
А давайте перестанем считать ошибкой повторное объявление макроса ;)

 
Slava #:
Зачем?
Затем, что очень странно отменять то, что до этого не было декларировано. Ведь, не исключено, что программист ошибся при написании имени и не отменил то, что требовалось.