cc -pthread -Wall -Wextra -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations strings/strncasecmp_l.c -o strings/strncasecmp_l -D_POSIX_C_SOURCE=202405L -lm -lpthread -liconv strings/strncasecmp_l.c:5:48: error: type specifier missing, defaults to 'int' [-Werror,-Wimplicit-int] int (*foo)(const char *, const char *, size_t, locale_t) = strncasecmp_l; ^ strings/strncasecmp_l.c:5:60: error: use of undeclared identifier 'strncasecmp_l'; did you mean 'strncasecmp'? int (*foo)(const char *, const char *, size_t, locale_t) = strncasecmp_l; ^~~~~~~~~~~~~ strncasecmp /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/strings.h:79:6: note: 'strncasecmp' declared here int strncasecmp(const char *, const char *, size_t); ^ strings/strncasecmp_l.c:5:7: error: incompatible function pointer types initializing 'int (*)(const char *, const char *, size_t, int)' (aka 'int (*)(const char *, const char *, unsigned long, int)') with an expression of type 'int (const char *, const char *, unsigned long)' [-Werror,-Wincompatible-function-pointer-types] int (*foo)(const char *, const char *, size_t, locale_t) = strncasecmp_l; ^ ~~~~~~~~~~~~~ 3 errors generated.