为什么memset采取int作为第二个参数,而不是一个char,而wmemset需要wchar_t的,而不是像long或long long?
Jer*_*fin 51
memset早期(通过相当多的)将函数原型添加到C中.如果没有原型,则无法将char函数传递给函数 - 当您尝试时,它会int在您通过它时被提升为什么,以及功能接收是一个int.
另外值得一提的是,C,字符文字喜欢'a'它不具有类型char-它有一个类型int,所以你通过什么会通常开始作为一种int反正.基本上,它作为char启动并获得提升的唯一方法是传递char变量.
从理论上讲,memset可能会被修改,因此它会收到一个char而不是一个int,但不太可能有任何好处,并且可能会破坏一些旧代码或其他代码.有一个未知但可能相当高的成本,几乎没有任何实际利益的机会,我会说它被改变的可能性char在"苗条"和"无"之间的线上得到了一个堕落.
编辑(响应注释):将CHAR_BIT最低有效位int用作写入目标的值.