如何解决VS 2019 stricmp 和 _stricmp 都会导致编译器错误
源代码本身并没有真正的问题。这是编译器对它的反应。这是麻烦的片段:
int XtnUtil::IsExtension(const char * filename,const char * xtn)
{
char* fx = FindExtension(filename); // Get a pointer to the filename extension
if (!fx) return 0; // Bail out if it's not there
if (xtn[0] == '.') xtn++; // Make sure we're looking at the alpha part
return (stricmp(fx,xtn) ? 0 : 1); // TRUE if they're equal
}
我还使用了 _stricmp
而不是 stricmp
。在任何一种情况下,编译器都会给我一个特别无意义的消息:
似乎在说“不要使用 _stricmp,而是使用 _stricmp。”我尝试了带下划线和不带下划线,还尝试了 POSIX 等效项 strcasecmp()
,但 Visual Studio 似乎根本不知道该功能。
目前,我已经通过简单地编写自己的名为 mystricmp()
的函数来解决这个问题,这有点令人反感但似乎有效。现在我最感兴趣的是为什么编译器给了我这么一个时髦的消息,如果我必须手写的函数不是微不足道的,我能做些什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。