值传递

2019-04-06

在函数调用那一篇里已经揭开了值传递的真相:

实参、形参有各自的存储空间(实参也可能只是一个值,而没有存储空间),实参 -> 形参是个值拷贝的过程,在函数调用前完成了这个拷贝过程,此后如果函数中对形参进行修改,实参的值不会跟着变。

但并不是我们就没办法在函数中修改外部变量了,用指针就好了,我们不需要修改指针的值,而只是修改指针指向的内存块:

...
Read More

编译优化

2019-03-25

C语言没有汇编快,因为C语言要由编译器翻译为汇编,编译器毕竟是人造的,翻译出来的汇编源代码总有那么N条指令在更智能、更有创造性的我们看来是多余的。

C语言翻译后的汇编有如下恶劣行径:

  1. C语言偏爱内存。我们写的汇编一般偏爱寄存器,寄存器比内存要快很多倍。当然,寄存器的数量屈指可数,数据多了的话也必须用内存。
  2. ...
Read More

实时进程rtp依赖的库有哪些?

2019-03-19

VxWorks实时进程文章,皆依赖于辉姐和燕姐,两位大佬的公司培训,由me稍作整理。

RTP:实时进程,类似linux和windows下的进程。

rtp的整个一系列启动流程是怎样的?操作系统在中间作了什么?一个rtp运行起来又需要那些资源?带动态库的rtp又是怎么...

Read More

rtp实时进程启动

2019-03-18

rtp实时进程要怎么启动起来呢?办法有什么很多,主要说几个吧:

  1. shell上直接运行rtpSp xxx.vxe
  2. shell脚本中写上rtpSp xxx.vxe,然后让操作系统的usr_main直接调用脚本
  3. 通过IDE直接运行
...
Read More

变量名、函数名

2019-03-02

C程序在执行的时候直接用内存地址去定位变量、函数,而不是根据名字去搜索,所以C程序执行的速度比脚本语言要快不少。

对于函数中的局部变量来说,编译为汇编的时候,名字就已经被彻彻底底地忘记了,因为局部变量在函数帧中,这一帧要占多少字节,各局部变量在帧中的相对位置,都在编译成汇编的时候就可以确定下来,生成目标文件、可执行文件的时候也不需要再更改。

而全局变量、...

Read More

英语字母的由来

2019-02-14

每次,窥探一下历史,便会佩服于古人的智慧。

希腊人在改造腓尼基字母的基础上创造了希腊字母,这是希腊人对人类文明的重要贡献。现在的希腊字母是不同地区的古希腊人不断改进的结晶。这种不仅能够表现辅音,而且能够表现母音的字母,成为拉丁字母的前驱。

希腊字母源于腓尼基字母,腓尼基字母只有辅音,从右向左写,希...

Read More

英语也有象形字!

2019-02-13

刘洪波老师常说,英语单词其实就是中文里的拼音,没有另外单独的字形。因此,英语单词至少比中文简单一半。我们只要按学习拼音的方法,拼读法,就能记忆和掌握单词。

我非常同意英语相对中文的简单,这也是为何英语能成为国际语言的原因之一,而中文的复杂从一开始就淘汰了一部分人,跟别说以前的繁体字,且没有拼音!语言最重要的功能是...

Read More