const char [] аргумент функции по умолчанию - PullRequest
0 голосов
/ 11 мая 2018

Я определил тип как этот:

typedef char sType[256];

и функция с параметром по умолчанию:

void foo(const sType param = NULL);

MinGW (g ++ 4.8.0) компилирует его без ошибок.

Вместо этого Visual Studio 2015 (Инструменты 14.0) выдает следующую ошибку:

error C2040: 'sType': 'int' differs in levels of indirection from 'char [256]'

Я пытался привести NULL к const char[], но это приводит к:

error C2440: 'type cast': cannot convert from 'int' to 'const char []'

Есть подсказка? Спасибо

1 Ответ

0 голосов
/ 13 мая 2018

Cast NULL не const char[] (или sType), а const char*.Параметры функции подвергаются затуханию от массива к указателю в самом объявлении .

...