回复:[M] Prelude to K.O. (4)
14楼的程序略作改动就可以在1990年的Microsoft Quick C 2.51上编译通过,说明这个扩展并不是从Delphi学来的。
void main()
{
int a=123;
asm
{
jmp next_
}
a++
asm
{
next_:
nop
}
}
此外Intel,DigtalMars的C++编译器也支持这种用法,但Borland C++不支持,而GCC的汇编语法就和Intel系的汇编语法都不一样。
C++的typedef可以提供类似Object Pascal开域语句的功能,用它来简化复杂类型是常见的手法:
struct StructA
{
struct StructB
{
struct StructC
{
struct StructD
{
int id;
}sd;
}sc;
}sb;
};
StructA sa;
typedef StructA::StructB::StructC::StructD StructD;
StructD& psd = sa.sb.sc.sd;
psd.id=1;
另外现在C++的编程思想是,能用reference的地方不用pointer;能用template代替virtual function的时候不用virtual function,至于模版怎么用,建议参考Loki和Boost.Spirit这两个library。
虽然C++代码在Size方面不是很好,但Speed不会比C和汇编差。