#ifndef   __DSTACK__ 
#define   __DSTACK__ 
这个与 
#ifndef   DSTACK_H 
#define   DSTACK_H 
的区别????没有什么区别,就是所谓的名字不同
第一个名字为__DSTACK__ ,第二个名字为DSTACK_H而已第一个就是告诉编译器,如果你见过__DSTACK__这个人,就不用再往下走了
第二个告诉编译器,如果你见过DSTACK_H这个人,就不用再往下走了名字是你随便起的,没什么大不了的
一般都是使用文件名,比如___ABCD_H__下划线随便自己爱好加