在c中如何实现继承的效果
http://topic.csdn.net/u/20100413/09/ffc0fcd5-c3c1-4a15-b5a2-f1bf65f50caa.html?21874
C/C++ code
typedef struct _VSCSIDISK_COMMON_DEVICE_EXTENSION
{
BOOLEAN IsPdo;
} VSCSIDISK_COMMON_DEVICE_EXTENSION, *PVSCSIDISK_COMMON_DEVICE_EXTENSION;
typedef struct _VSCSIDISK_PDO_DEVICE_EXTENSION
#ifdef __cplusplus
: VSCSIDISK_COMMON_DEVICE_EXTENSION
{
#else
{
VSCSIDISK_COMMON_DEVICE_EXTENSION;//这里怎样理解?
#endif
ULONG DeviceId; // unique device id
} VSCSIDISK_PDO_DEVICE_EXTENSION, *PVSCSIDISK_PDO_DEVICE_EXTENSION;
正确解释 16楼
因为C语言没有类及继承的概念,所以不能给结构指定基类。“VSCSIDISK_COMMON_DEVICE_EXTENSION;”就是实现继承的效果,不指定成员变量名,则可以直接访问VSCSIDISK_COMMON_DEVICE_EXTENSION中的成员,例如:
VSCSIDISK_PDO_DEVICE_EXTENSION x;
x.IsPdo = FALSE;
如果指定了成员变量名,则要用变量名来访问,假设定义为“VSCSIDISK_COMMON_DEVICE_EXTENSION a;”,则访问方式为:
VSCSIDISK_PDO_DEVICE_EXTENSION x;
x.a.IsPdo = FALSE;
相关文档:
/*FIXME
ISO C如果你在main()中写代码的中间定义了一个对于main而言的全局变量,就会报出这个错误。
*/
把这个变量定义到main函数中的最前方,就会修正这个错误。
而且为了防止出错,设定的指针之后再有参数传入malloc之后立即对于指针予以空间的创建。防止出现指针未初始化从而引起将来赋值的时候将该值覆盖了已经为本 ......
本文来自:Linux教程 -- http://doc.linuxpk.com/53295.html
如有不明白之处,欢迎参加社区讨论
1.Linux“线程”
笔者曾经在《基于嵌入式操作系统VxWorks的多任务并发程序设计》(《软件报》2006年第5~12期)中详细叙述了进程和线程的区别,并曾经说明Linux是一种“多进程单线程”的操作系统。 ......
在这儿下载:color-theme
:
http://download.savannah.gnu.org/releases-noredirect/color-theme/
wget http://download.savannah.gnu.org/releases-noredirect/color-theme/color-theme-6.6.0.tar.gz
tar zxf color-theme-6.6.0.tar.gz -C ~/.emacs.d
在.emacs中加入下列语句:
;; corlor-theme ......
当你买了台新电脑时,觉得性能,速度,你都比较满意,但是随着时间推移,你觉得你C盘空间越来越小,速度也降下了,那我们该怎么办呢?
对于菜鸟来说,有一点你必须注意:当你下载东西,有些网站是默认C盘,这时可以选择下载盘时,最好放在其他盘里,不可以选择也没办法,C盘里的文件也是病毒喜欢 ......
1 选择new->project->win32 console project;
在这一步的选框上有一个选项是 create dictionary for solution, 我不知道这个具体是什么作用,选了之后会项目出现两层文件夹,比如你创建一个命名为test的项目,会生成test文件夹,test中包含另一个test文件夹,你的项目实际上放在了内层te ......