|
||||
|
在网易上看到有人问C和C++的区别有什么,在这里简略说点. 其他的东西都不需要多说,就象类,继承,引用等,大家都知道. 这里讲的是调用编译的区别.大家看WIN32 SDK的头文件,总是可以看到 #ifdef __cplusplus #ifdef __cplusplus 这个就是直接能够体现实际编程时区别的地方. 在WIN系列下.所有的WIN32 SDK提供的LIB都是以C的形式存在的.当然,C和C++同样都支持C,STDCALL,FASTCALL调用.为什么系统提供C编译器编译的LIB而不是C++编译的LIB呢?这里其实就是C和C++编译器不同的地方. 所有的函数名称只有在汇编编译器下才最清楚.因为经汇编编译器编译的函数不经过任何修饰. 一个例子: void __stdcall b::c(float){}; -----------> ?c@b@@QAGXM@Z
现在,VC编译器提供了个extern语句.当出现extern 'C'{}语句,括号里的函数将以C方式经过编译器.从而使提供库程序方便那么点. |
||||
| 【木瓜软件工作室】整理 | ||||