﻿# V1117\. The declared function type is cv\-qualified\. The behavior when using this type is undefined\.

Анализатор обнаружил в коде на языке C определение типа функции с использованием квалификаторов const или volatile\. Согласно пункту 10 параграфа 6\.7\.4\.1 стандарта С23, при использовании таких типов поведение не определено\.

Пример кода, на котором анализатор сгенерирует предупреждения: 

```cpp
typedef int fun_t(void);

typedef const fun_t const_qual_fun_t;          // V1117

typedef const fun_t * ptr_to_const_qual_fun_t; // V1117

void foo()
{
  const fun_t c_fun_t;       // V1117
  const fun_t * ptr_c_fun_t; // V1117
}
```

Для правильной работы программы следует убрать квалификатор `const` при определении типа функции\. Таким образом, корректный код выглядит так:

```cpp
typedef int fun_t(void);

typedef fun_t const_qual_fun_t;          // ok

typedef fun_t * ptr_to_const_qual_fun_t; // ok

void foo()
{
  fun_t c_fun_t;       // ok
  fun_t * ptr_c_fun_t; // ok
}
```