﻿# V3526\. AUTOSAR\. Expression resulting from the macro expansion should be surrounded by parentheses\.

Данное диагностическое правило основано на руководстве [AUTOSAR](https://www.autosar.org/) \(AUTomotive Open System ARchitecture\) по разработке программного обеспечения\.

Анализатор обнаружил потенциально возможную ошибку в записи макроса\. Макрос и его параметры следует заключать в скобки\.

В случае, когда параметры или само выражение не заключены в скобки, может быть нарушена задуманная последовательность действий после того, как макрос будет подставлен\.

Пример кода, на который анализатор выдаст предупреждение:

```cpp
#define DIV(x, y) (x / y)
```

Пример использования макроса, приводящего к ошибке:

```cpp
Z = DIV(x + 1, y + 2);
```

В результате получим:

```cpp
Z =(x + 1 / y + 2);
```

Чтобы избежать нарушения последовательности действий, этот макрос стоит переписать следующим образом:

```cpp
#define DIV(x,y) ((x) / (y))
```