wmemmove, wmemmove_s
來自 cppreference.com
在標頭檔案 <wchar.h> 中定義 |
||
wchar_t* wmemmove( wchar_t* dest, const wchar_t* src, size_t count ); |
(1) | (自 C95 起) |
errno_t wmemmove_s( wchar_t *dest, rsize_t destsz, const wchar_t *src, rsize_t count); |
(2) | (C11 起) |
1) 從 src 指向的寬字元陣列中複製 count 個連續的寬字元到 dest 指向的寬字元陣列。如果 count 為零,則函式不執行任何操作。這些陣列可以重疊:複製操作就像寬字元先被複制到一個臨時寬字元陣列,然後再從臨時陣列複製到 dest。
2) 同 (1),但會在執行時檢測以下錯誤並呼叫當前安裝的約束處理函式
- src 或 dest 是空指標
- destsz 或 count 大於 RSIZE_MAX / sizeof(wchar_t)
- count 大於 destsz(會發生溢位)
- 與所有邊界檢查函式一樣,只有當實現定義了 __STDC_LIB_EXT1__ 並且使用者在包含 <wchar.h> 之前將 __STDC_WANT_LIB_EXT1__ 定義為整數常量 1 時,才能保證
wmemcpy_s
可用。
目錄 |
[編輯] 引數
dest | - | 指向要複製到的寬字元陣列的指標 |
src | - | 指向要複製的寬字元陣列的指標 |
destsz | - | 要寫入的最大寬字元數(目標緩衝區的大小) |
count | - | 要複製的寬字元數 |
[編輯] 返回值
1) 返回 dest 的副本
2) 成功時返回零,錯誤時返回非零。此外,在錯誤時,會用空寬字元 L'\0' 填充整個 dst 直到(但不包括)dst+dstsz(除非 dest 為空或 destsz 大於 RSIZE_MAX/sizeof(wchar_t))
[編輯] 注意
此函式不區分割槽域設定,並且不關注所複製的 wchar_t 物件的值:空字元和無效字元也會被複制。
[編輯] 示例
執行此程式碼
輸出
αβγδεζηθικλμνξοπρστυφχψω αβγδδεζθικλμνξοπρστυφχψω
[編輯] 參考
- C23 標準 (ISO/IEC 9899:2024)
- 7.29.4.2.4 wmemmove 函式 (p: TBD)
- K.3.9.2.1.4 wmemmove_s 函式 (p: TBD)
- C17 標準 (ISO/IEC 9899:2018)
- 7.29.4.2.4 wmemmove 函式 (p: TBD)
- K.3.9.2.1.4 wmemmove_s 函式 (p: TBD)
- C11 標準 (ISO/IEC 9899:2011)
- 7.29.4.2.4 wmemmove 函式 (p: 432)
- K.3.9.2.1.4 wmemmove_s 函式 (p: 642)
- C99 標準 (ISO/IEC 9899:1999)
- 7.24.4.2.4 wmemmove 函式 (p: 378)
[編輯] 另請參閱
(C11) |
將一個緩衝區移動到另一個緩衝區 (函式) |
(C95)(C11) |
在兩個不重疊的陣列之間複製一定數量的寬字元 (函式) |
C++ 文件 為 wmemmove
|