[英]convert wchar_t array into int array in C
我正在嘗試將 wchar_t 數組轉換為 int 數組,其中包含 C 中每個 wchar_t 元素的編碼。 我知道我可以通過像下面的代碼這樣的循環來做到這一點,有沒有其他方法不使用可以大大提高性能的循環?
for(int i=0; i< filesize; i++){
t[i] = (int)p[i]; //t is an int array, p is a wchar_t array
}
不。在那種情況下,沒有真正的選擇(至少如果您考慮到可移植性)。 否則,mediocrevegetable1 是一個可能的解決方案。
假設wchar_t
和int
具有相同的大小,那么memcpy
可能就是您想要的。
#include <string.h>
#include <wchar.h>
int main(void)
{
_Static_assert(sizeof (int) == sizeof (wchar_t), "This won't work");
wchar_t warr[3] = {L'a', L'b', L'c'};
int iarr[3] = {0};
memcpy(iarr, warr, sizeof warr);
// iarr now holds the same contents as warr
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.