机制是什么? 我的理解:机制是所有理想目标的总和,而策略是为了达成这些理想目标的方法;再者是机制的无限理想逻辑和策略的现实方法又是一对矛盾的统一体。正如如是说的那样:理想是丰满的,现在却是骨感的。也许我们做的只是让理想的机制减点肥,而让现实的策略丰满点,以达成在合适机制目标下的合适策略。同时我又在想,如果有一个超光速无限快的CPU和一片超光速容量无限大的内存片,那我就可以像太阳发出的一缕阳光后,而我在地球上等待着这缕阳光到来那样,真的是什么都是浮云了。狭义的讲,C语言的机制是让我们可以发挥无限逻辑成为可能,而C语言的策略就是C编译器。当理想遇到现实的时候,机制不得不低下那高贵的头颅,脚踏实地的老老实实的在策略的怀抱中撒娇,以期望能让自己无限接近那个理想目标。
所以说用C语言,一定要了解C编译器。不了解编译器,会让自己的无限逻辑撞得头破血流。这样就有了C语言运行环境,当你的程序被C编译器链接加载后,已经潜意识的有了个C语言的运行环境要求了,这不是你的逻辑编程造成的,而是由于C编译器这个策略方法决定了,就像用我的方法就要遵循我的规矩那样。因为在C编译器编译你的程序的时候,运用的是C编译器自己的组织数据的方式,用了编译器自己的规则、规则下的数据结构以及这些数据结构在内存中的具体排列位置;C语言的运行环境说的就是这些,这些的集合要素就是C语言的运行环境。在C51、ARM、X86中,其各自C语言的运行环境也就不那么相同,都有各自自己的硬件体系结构。有静态的加载方式,有动态的加载方式。这2种方式就像是指针和指针的指针那样;第一次的加载总是静态的,在静态的基础上再加载就有了动态的可能了。还有堆栈的使用,在不同的C编译器下也不尽相同。用堆的,不用堆的。局部变量全部用栈的,和部分用栈的。有软件堆栈指针的(内存变量,指令控制加减),有硬件堆栈指针的(寄存器变量和硬件自动加减),还有半软半硬的(寄存器变量和指令加减);这些都组成了C语言的运行环境。
要移植C,不得不对这些有所考虑。要移植C操作系统就更加需要知道,这些不同的硬件体系结构和对应下的C编译器。 |