存档

2011年1月 的存档

C++ Complete Type

2011年1月26日 1 条评论


刚看到上面的代码,相信很多朋友会疑惑,上面那个enum是干什么用的呢?不急,且听我一一道来。这里,”enum {type_must_be_complete = sizeof(C)}”的作用是为了防止C只有声明、没有定义,也就是为了确保C是完整的类型。为什么会这样呢?
这是因为,在C++中,类型有Complete type和Incomplete type之分,对于Complete type, 它的大小在编译时是可以确定的,而对于Incomplete type, 它的大小在编译时是不能确定的。所以,上面的代码中,如果C是Incomplete type的话,sizeof就会在编译时报错,从而达到了我们检查C是否是Complete type的目的。
那么,如何来区分Complete type和Incomplete type呢?msdn中是这样定义Incomplete type的: 阅读全文…

linux程序分析工具介绍(一)—-“/proc”

2011年1月4日 7 条评论

写在最前面:在开始本文之前,笔者认为先有必要介绍一下linux下的man,如果读者手头用linux系统,直接在终端输入man man便可以看到详细的说明,我在这里简单的总结一下,man命令是用来查看linux下各种命令、工具等的用户手册(manual)的。一种比较常用的用法是”man n field”,这里的n是要查找的手册了类型,field是关键字。在这里介绍一下n:

  • 0 /usr/include下的头文件
  • 1 可执行程序和shell命令
  • 2 系统调用
  • 3 系统库函数
  • 4 /dev下的特殊文件
  • 5 文件格式和约定(比如/etc/passwd)
  • 阅读全文…

    分类: 技术杂记 标签: , , , , ,