术语这个东西

        有一段时间很排斥术语这个东西,因为觉得所谓术语,无非是把一个明明能简单弄懂的东西增加复杂度的玩意儿。而那些说术语的人,觉得炫耀的成份好浓。>_< 哦,我还真是一个麻烦的家伙。

        但其实,深层的追究下去,这其实应该是我对这个行业的一个疏离,因为潜意识中就从不曾把自己真正的溶入程序员这个团体,总以为随时可以就一甩头走开管也不用管,没办法,我也觉得很小孩心态,因为根本就避无可避的。

        今天还和朋友说到自己喜欢做什么,开玩笑一样的说,其实我工作这快两年最主要的思考就是自己喜欢做什么,因为一直觉得人活一次很不容易,如果还不能做些自己喜欢的事情,那该是多么不能弥补的遗憾。但挺可悲的,我觉得我还没有想明白自己喜欢做什么。是涉及过的东西太多所以我挑花了眼吗?

        呵呵,似乎扯远了,扯回来。。其实这篇博是一篇读书笔记,记录一些术语。OMG

Name-Mangling:先来个英文的,其实就是重命名~~或者称做名字修饰 名字改编;各编译器会有不同的重命名规则。这个在标准C++中没有做规定,这也是导致不同语言实现之间的连接器不能兼容的原因之一。

连接规范:这个是紧接着上面的术语的,在使用不同的编程语言联合开发的时候,需要指定连接规范关系,就可以指定连接器的Name-Mangling方式,才可以保证程序连接正常。例如:

extern void WinMainCRTStartup();

还有对一段代码限定连接规范的

  #ifdef __cplusplus 
  extern &quot;C&quot;{ 
  #endif

  //content 

  #ifdef __cplusplus
  } 
  #endif

当然还有别的方法省略不提

编译时:哦老外的叫法都太奇怪,其实这个时,表示的是一个阶段,指编译预处理器(这在我的理解里就是那些个#define与#ifdef),编译器和连接器工作的阶段。这个阶段做的事情有预编译伪指令、类定义、外部对象声明、函数原型、标识符、各种修饰符(const, static,etc.)以及类成员的访问说明符(public,etc.)、连接规范、调用规范等等这些是在编译时完成的东西,在可执行程序中是不存在这些玩意儿的。

运行时:自然是指程序运行阶段。容器越界访问、虚函数动态决议、函数动态连接、动态内存分配、异常处理、RTTI这些才会出现在运行时。

默认类型:这是个在标准C语言里才有的东西,标准C++里面已经不再有这个东西。所谓默认类型,指,在你没有明确表示函数的返回值类型或者参数类型的时候,语言为其指定的类型。标准C指定的是int。但这不是个好东西,不要用!!

 

(完全未完待续)

发表评论

电子邮件地址不会被公开。 必填项已用*标注