Если предположить, что u_char
является typedef для unsigned char
, то обычная уловка - использовать стандартные функции и применять приведение.
Это очень неловко, поэтому вы можете вместо этого использовать макросы, которыеприменяйте приведение автоматически.
#define STRSTR(haystack, needle) \
((u_char *)strstr((char *)haystack, (char *)needle))
Или вы можете написать inline
функции, если ваш компилятор поддерживает C99.
static inline u_char *ustrstr(u_char *haystack, u_char *needle)
{
return (u_char *)strstr((char *)haystack, (char *)needle);
}
Или вы можете просто написать функции обложки:
u_char *ustrstr(u_char *haystack, u_char *needle)
{
return (u_char *)strstr((char *)haystack, (char *)needle);
}