Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make error: static declaration of 'isnumber' follows non-static declaration on macOS #2

Open
muyinliu opened this issue Jul 30, 2020 · 0 comments

Comments

@muyinliu
Copy link

gcc -Wall -O3 -o subsync subsync.c
subsync.c:117:12: error: static declaration of 'isnumber' follows non-static declaration
static int isnumber(char *s);
           ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_ctype.h:323:1: note:
      previous definition is here
isnumber(int _c)
^

subsync.c:606:12: error: static declaration of 'isnumber' follows non-static declaration
static int isnumber(char *s)
           ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/_ctype.h:323:1: note:
      previous definition is here
isnumber(int _c)
^

because isnumber is an BSD Library Function, see man page of isnumber on macOS:

ISDIGIT(3)               BSD Library Functions Manual               ISDIGIT(3)

NAME
     isdigit, isnumber -- decimal-digit character test

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <ctype.h>

     int
     isdigit(int c);

     int
     isnumber(int c);

DESCRIPTION
     The isdigit() function tests for a decimal digit character.  Regardless of locale,
     this includes the following characters only:

     ``0''         ``1''         ``2''         ``3''         ``4''
     ``5''         ``6''         ``7''         ``8''         ``9''

     The isnumber() function behaves similarly to isdigit(), but may recognize additional
     characters, depending on the current locale setting.

     The value of the argument must be representable as an unsigned char or the value of
     EOF.

RETURN VALUES
     The isdigit() and isnumber() functions return zero if the character tests false and
     return non-zero if the character tests true.

COMPATIBILITY
     The 4.4BSD extension of accepting arguments outside of the range of the unsigned
     char type in locales with large character sets is considered obsolete and may not be
     supported in future releases.  The iswdigit() function should be used instead.

SEE ALSO
     ctype(3), isalnum_l(3), iswdigit(3), multibyte(3), ascii(7)

STANDARDS
     The isdigit() function conforms to ISO/IEC 9899:1990 (``ISO C90'').

BSD                               May 4, 2007                              BSD

Suggestion: rename function isnumber to is_number_string.

cxa added a commit to cxa/subsync that referenced this issue Aug 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant