在C++中,要對(duì)一個(gè)整數(shù)數(shù)組進(jìn)行批量的htonl
(將主機(jī)字節(jié)序轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)序)轉(zhuǎn)換,可以使用循環(huán)遍歷數(shù)組并對(duì)每個(gè)元素應(yīng)用htonl
函數(shù)
#include<iostream>
#include <arpa/inet.h> // 在Windows上使用 #include <winsock2.h>
void batch_htonl(uint32_t* arr, size_t size) {
for (size_t i = 0; i< size; ++i) {
arr[i] = htonl(arr[i]);
}
}
int main() {
uint32_t arr[] = {1, 2, 3, 4, 5};
size_t size = sizeof(arr) / sizeof(arr[0]);
batch_htonl(arr, size);
for (size_t i = 0; i< size; ++i) {
std::cout << "Converted: "<< arr[i]<< std::endl;
}
return 0;
}
這個(gè)示例中,batch_htonl
函數(shù)接收一個(gè)無符號(hào)32位整數(shù)指針arr
和數(shù)組大小size
。然后,它遍歷數(shù)組并使用htonl
將每個(gè)元素從主機(jī)字節(jié)序轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)序。請(qǐng)注意,在Windows系統(tǒng)上,需要包含<winsock2.h>
頭文件。