Tuesday, October 5, 2010

C Programmer的巧计可能称为C++ Programmer的陷阱!

不少有经验的C程序员,当然是已经对C的编程模型了解很深刻的,使用C语言的巧计,在C++代码里却有可能称为陷阱,这样的例子不少:

  1. struct中的不定长数组。
  2. C style字符串。
  3. 函数指针。
  4. memset/memcpy/memmove
  5. void*
当你想用以上机制时,要好好想想是否在C++里有更好的办法?

Inside The C++ Object Model是本好书

深度探索C++对象模型,是Lippman十年前的巨作,深度介绍C++背后的事情。C++这门语言和其它语言不同的是,你要想用好它,就得充分的了解它,了解C++编译器在背后做了哪些事情。这本书会让有一些经验的C++ Programmer拍案叫绝!

Sunday, October 3, 2010

Python程序的运行

Python是一种脚本语言,但和普通的脚本语言,如Bash不同。Python在运行时解释器会将其编译成Bytecode,而Bytecode在运行时Python虚拟机会将其实时地转换为机器码运行,而这种机器码会被优化,只有被运行地那一部分机器码会被实际转换出来,其余地不受影响,而且这种机器码会一直被保留着。这种过程叫做JIT=Just In Time。
每一个import的Python模块会被保留一直到程序运行结束,后面即使模块改变也不会重新编译。而import的过程是消耗时间的。