我不明白为什么最后两行会使用strlen()导致警告。编译器是否应该忽略这些?
foreach (string key in Request.Cookies.AllKeys)
{
HttpCookie c = Request.Cookies[key];
c.Expires = DateTime.Now.AddMonths(-1);
Response.AppendCookie(c);
}
答案 0 :(得分:2)
因为原型是:
size_t strlen(const char * str);
如ref所述。
这些行中发生了隐式转换,因此出现了警告。在此处阅读更多内容:How can I avoid gcc warning for plain "char" to : "unsigned char" OR "signed char" conversion?
正如Pete Becker所说:
" char
到unsigned char
涉及隐式转化。 unsigned char*
到char*
,与问题中的代码一样,无效,需要诊断。 "