You copied the Doc URL to your clipboard.

How the Arm® C library fulfills ISO C specification requirements

The ISO specification leaves some features to implementors, but requires that implementation choices be documented.

The implementation of the generic Arm® C library in this respect is as follows:

  • The macro NULL expands to the integer constant 0.

  • If a program redefines a reserved external identifier, an error might occur when the program is linked with the standard libraries. If it is not linked with standard libraries, no error is diagnosed.

  • The __aeabi_assert() function prints information on the failing diagnostic on stderr and then calls the abort() function:

    *** assertion failed: expression, file name, line number

    Note

    The behavior of the assert macro depends on the conditions in operation at the most recent occurrence of #include <assert.h>. See Program exit and the assert macro for more information about the behavior of the assert macro.
  • The following functions test for character values in the range EOF (-1) to 255 inclusive:

    • isalnum()

    • isalpha()

    • iscntrl()

    • islower()

    • isprint()

    • isupper()

    • ispunct()

  • The fully POSIX-compliant functions remquo(), remquof() and remquol() return the remainder of the division of x by y and store the quotient of the division in the pointer *quo. An implementation-defined integer value defines the number of bits of the quotient that are stored. In the Arm C library, this value is set to 4.

  • C99 behavior, with respect to mathlib error handling, is enabled by default.

Was this page helpful? Yes No