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