所以我想char8_t在我的代碼中使用資料型別。但是我的編譯器告訴我它找不到像 的識別符號char8_t,這可能意味著它找不到所需的頭檔案或它的定義。
那么誰能告訴我應該使用哪些頭檔案/定義來獲取char8_t資料型別?語言是C 。如果您也可以回答,我將不勝感激C。
PS:<cwchar>沒用。
編輯:
我的代碼:
#include <iostream>
#include <cwchar>
using namespace std;
int main()
{
char c='a';
wchar_t w=L'A';
char8_t c8=u8'c';
char16_t c16=u'D';
char32_t c32=U'K';
cout<<"Data Type"<<"\t"<<"Size"<<"\n"
<<"char"<<"\t \t"<<sizeof(c)<<" bytes"<<"\n"
<<"wchar_t"<<"\t \t"<<sizeof(w)<<" bytes"<<"\n"
<<"char8_t"<<"\t"<<sizeof(c8)<<"\n"
<<"char16_t"<<"\t"<<sizeof(c16)<<" bytes"<<"\n"
<<"char32_t"<<"\t"<<sizeof(c32)<<" bytes"<<"\n";
return 0;
}
我的編譯器拋出這個錯誤:
WideCharacters.cpp: In function 'int main()':
WideCharacters.cpp:8:5: error: 'char8_t' was not declared in this
scope; did you mean 'wchar_t'?
8 | char8_t c8=u8'c';
| ^~~~~~~
| wchar_t
WideCharacters.cpp:15:31: error: 'c8' was not declared in this
scope; did you mean 'c'?
15 | <<"char8_t"<<"\t"<<sizeof(c8)<<"\n"
| ^~
| c
編輯-2:
我在 VS 代碼中將 C 標準設定為 C 20,因此標準沒有問題。
uj5u.com熱心網友回復:
char8_t是關鍵字。它內置于語言中,因此您不需要任何標題。
如果它不起作用,要么您的編譯器不支持它,要么您忘記啟用 C 20 支持(例如-std=c 20在 GCC 中)。
uj5u.com熱心網友回復:
這里的問題可能是編譯器無法識別這是一個C 20特性。
使用這個編譯:
g -Wall -std=c 20 "yourFileName".cpp
替換youFileName為檔案名。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/346456.html
