Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Expanded list of non-portable behavior and added links to definitions.

...

The C99 standard identifies two four different kinds of non-portable behavior:

Sections 1 through 4 of Annex J of the C99 standard enumerate distinct instances of unspecified, undefined, implementation-defined and unspecified, and locale-specific behavior, respectively.

C99 Section 3.4.1 defines implementation-defined behavior as

...

An example of unspecified behavior is the order in which the arguments to a function are evaluated.Appendix J.1, "Unspecified behavior," provides a list of unspecified behaviors in C99, and Appendix J.3, "Implementation-defined behavior," provides a list of implementation-defined behaviors in C99.

Most legitimate platform dependencies can and should be isolated in separate modules that use portable interfaces but platform-specific implementations.

...