You copied the Doc URL to your clipboard.

Differences between microlib and the default C library

The main differences between microlib and the default C library are:

  • Microlib is not compliant with the ISO C library standard. Some ISO features are not supported and others have less functionality.

  • Microlib is not compliant with the IEEE 754 standard for binary floating-point arithmetic.

  • Microlib is highly optimized for small code size.

  • Locales are not configurable. The default C locale is the only one available.

  • main() must not be declared to take arguments and must not return.

  • Microlib provides limited support for C99 functions.

  • Microlib does not support C++.

  • Microlib does not support operating system functions.

  • Microlib does not support position-independent code.

  • Microlib does not provide mutex locks to guard against code that is not thread safe.

  • Microlib does not support wide characters or multibyte strings.

  • Microlib does not support selectable one or two region memory models as the standard library (stdlib) does. Microlib provides only the two region memory model with separate stack and heap regions.

  • Microlib does not support the bit-aligned memory functions _membitcpy[b|h|w][b|l]() and membitmove[b|h|w][b|l]().

  • Microlib can be used with either --fpmode=std or --fpmode=fast.

  • The level of ANSI C stdio support that is provided can be controlled with #pragma import(__use_full_stdio).

  • #pragma import(__use_smaller_memcpy) selects a smaller, but slower, version of memcpy().

  • setvbuf() and setbuf() always fail because all streams are unbuffered.

  • feof() and ferror() always return 0 because the error and EOF indicators are not supported.