我正在努力寻找答案:

#define BUFLEN 8
unsigned short randombuffer[BUFLEN];
memset(randombuffer, 200 , BUFLEN );
printf("%u", randombuffer[0]);


我得到的答案是51400,尽管我希望是200。
调试后,我发现randombuffer的前8个条目充满了0xC8。因此0xC8C8是51400。但是我期望数组中的每个索引都为0x00C8。
我究竟做错了什么?

最佳答案

memset填充字节,但是看起来您想填充单词。我不知道是否为此内置了类似memset的函数,因此您可能不得不重复执行memset / memcpy。请注意,如果您舒适地编写内联汇编程序,则可以自己在机器代码中高效地完成此操作-尽管在C中使用指针的紧密循环可能快得差不多。

关于c - memset按字节而不是整数(4个字节),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33694259/

10-11 21:59
查看更多