LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

Не только для переменной. Ещё для того, чтобы макрос снаружи вёл себя как функция в плане синтаксиса.

Если сделать без { } то будут неприятные сюрпризы в конструкциях типа

if(...) __HAL_RCC_GPIOC_CLK_ENABLE();

Если сделать { } но без do-while то после раскрывания из __HAL_RCC_GPIOC_CLK_ENABLE(); получится

{ ... };
(лишняя точка с запятой после скобки, тоже может испортить смысл конструкции местами).

Исходная версия firkax, :

Не только для переменной. Ещё для того, чтобы макрос снаружи вёл себя как функция в плане синтаксиса.

Если сделать без { } то будут неприятные сюрпризы в конструкциях типа if(...) __HAL_RCC_GPIOC_CLK_ENABLE();

Если сделать { } но без do-while то после раскрывания из __HAL_RCC_GPIOC_CLK_ENABLE(); получится { ... }; (лишняя точка с запятой после скобки, тоже может испортить смысл конструкции местами).