Неизвестное имя типа char16_t при компиляции кода C с использованием заголовка, используемого для кода C ++ - PullRequest
0 голосов
/ 17 июня 2019

Это мой заголовочный файл,

sample.h

#pragma

#ifndef BASETYPES
#define BASETYPES

typedef char16_t WCHAR

#endif

Это мой код C,

sample.c

WCHAR *name;
int main() {
}

Приведенный выше заголовок изначально использовался только кодом C ++. Теперь у меня есть код C для компиляции, который использует тот же заголовочный файл.

Когда я компилирую код C, используя GCC, я получаю следующую ошибку,

"error G5688306C: unknown type name char16_t"

Я прочитал это это и похоже, что это на самом деле не ошибка.

Есть ли какое-либо решение или решение проблемы, с которой я столкнулся? Пожалуйста, предложите.

1 Ответ

2 голосов
/ 17 июня 2019

char16_t не является встроенным типом C.Он был введен C ++ 11 в заголовке uchar.h.Использование функций C ++ 11 с GCC включено с -std=c++11.

Если вы не можете использовать C ++ 11, вы должны использовать другой тип.
wchar_t или uint16_t может быть полезным.

...