ANSI C标准化的意图是提供C程序的可移植性, 使其能适合于大量不同的操作系统, 而不只是UNIX. 此标准不仅定义了C程序设计语言的语法和语义, 也定义了其标准库.
POSIX是IEEE制定的标准族.POSIX的意思是计算机环境的可移植操作系统接口(Portable Operating System Interface for Computer Environment).它原来指的是IEEE标准1003.1-1.1998.
有很多由实现定义的魔数和常数, 其中有很多已被编写到程序中, 或由特定的技术所确定.
由于大量标准化工作的努力, 已有若干种可移植的方法用以确定这些魔数和实现定义的限制.
以下三种类型的功能是必需的:
前两个, 编译时间选择项和限制可以在头文件中定义.
程序在编译时可以包含这些头文件, 但是运行时间限制要求进程调用一个函数以获得此种限制值.
POSIX.1定义了很多涉及操作系统实现限制的常数, 不幸的是, 这是POSIX.1中最令人迷惑不解的部分之一.
个人感觉新出现的各种编程语言在标准这方面是完全吸取了c语言宽松和标准多样的缺陷的. 新的编程语言比如Go, rust语言在设计上就规避了这些问题.