﻿# V3546\. AUTOSAR\. Conversions between pointers to objects and integer types should not be performed\.

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

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

Пример нарушения 1:

```cpp
struct S { int16_t i; int16_t j; } *ps = ....;
int i64 = reinterpret_cast<int>(ps);
```

Пример нарушения 2:

```cpp
void foo(int i) {}

void wrong_param_type()
{
  char *pc = ....;
  foo((int) pc); 
}
```

Пример нарушения 3:

```cpp
int wrong_return_type()
{
  double *pd = ....;
  return (int) pd;
}
```