// // wcscmp.cpp // // Copyright (c) Microsoft Corporation. All rights reserved. // // Defines wcscmp(), which compares two wide character strings, determining // their ordinal order. // // Note that the comparison is performed with unsigned elements (wchar_t is // unsigned in this implementation), so the null character (0) is less than // all other characters. // // Returns: // * -1 if a < b // * 0 if a == b // * 1 if a > b // #include #if defined _M_X64 || defined _M_IX86 || defined _M_ARM || defined _M_ARM64 #pragma warning(disable: 4163) #pragma function(wcscmp) #endif extern "C" int __cdecl wcscmp(wchar_t const* a, wchar_t const* b) { int result = 0; #pragma warning(suppress:__WARNING_POTENTIAL_BUFFER_OVERFLOW_NULLTERMINATED) // 26018 while ((result = (int)(*a - *b)) == 0 && *b) { ++a; ++b; } return ((-result) < 0) - (result < 0); // (if positive) - (if negative) generates branchless code }