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>.
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.
Note
In RVCT 4.0, this behavior is not enabled by default, but
is enabled through the use of IMPORT __use_c99_matherr in
assembly language, or #pragma import __use_c99_matherr in C.
This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.
ARM websites use two types of cookie: (1) those that enable the site to function and perform as required; and (2) analytical cookies which anonymously track visitors only while using the site. If you are not happy with this use of these cookies please review our Privacy Policy to learn how they can be disabled. By disabling cookies some features of the site will not work.