Yes, memset's prototype is int but the implement of arch is unsigned char; for example, in arm64 .weak memset ENTRY(__memset) ENTRY(memset) mov dst, dstin /* Preserve return value. */ and A_lw, val, #255 orr A_lw, A_lw, A_lw, lsl #8 orr A_lw, A_lw, A_lw, lsl #16 orr A_l, A_l, A_l, lsl #32 -----邮件原件----- 发件人: Matthew Wilcox [mailto:willy@xxxxxxxxxxxxx] 发送时间: 2017年1月23日 14:26 收件人: zhouxianrong 抄送: Sergey Senozhatsky; linux-mm@xxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; akpm@xxxxxxxxxxxxxxxxxxxx; sergey.senozhatsky@xxxxxxxxx; minchan@xxxxxxxxxx; ngupta@xxxxxxxxxx; Mi Sophia Wang; Zhouxiyu; Duwei (Device OS); Zhangshiming (Simon, Device OS); Won Ho Park 主题: Re: [PATCH] mm: extend zero pages to same element pages for zram On Sun, Jan 22, 2017 at 10:58:38AM +0800, zhouxianrong wrote: > 1. memset is just set a int value but i want to set a long value. memset doesn't set an int value. DESCRIPTION The memset() function fills the first n bytes of the memory area pointed to by s with the constant byte c. It sets a byte value. K&R just happened to choose 'int' as the type to store that "unsigned char" in. Probably for very good reasons which make absolutely no sense today. ?韬{.n???檩jg???a?旃???)钋???骅w+h?璀?y/i?⒏??⒎???Щ??m???)钋???痂?^??觥??ザ?v???O璁?f??i?⒏?