我是新手,请问,为什么vc6 的 include 后面直接是xxx.h
而 vc.net 的 include后面却是 .\xxx.h可是在程序文件夹的文件位置都是一样的。这个问题官方是怎么交代的?还有 请高手给说说include文件时有什么原则?我总是a include b
然后b 又include c c 又include 都混乱了,经常发生重定义变量的事情,然后开始清理那些混乱的include。有什么原则可以有条理的include吗?头疼。

解决方案 »

  1.   

    #include "xx.h"和#include "./xx.h"的意思是一样的,只是后者明文指定了在当前目录搜索
    至于头文件的使用,一般使用#ifdef XXX_H
    #define XXX_H
    ...
    #endif // XXX_H
    再者尽量把变量的定义写在 cpp 文件里, h 文件只写些声明语句
      

  2.   

    请问 #ifdef XXX_H 
    #define XXX_H 
    ... 
    #endif // XXX_H 
    这个XXX_H 命名有什么规则吗?
      

  3.   

    还有个问题,就是当 a文件 include b.h文件是 是在a文件的 a.cpp 中 还是在a.h中include?
      

  4.   


    这是给每个.h文件字义的宏,这样子,如何此.h文件已经include过了。相应的宏就已经被定义了,就不会再被包含进去。
    这就避免了重复include的现象
      

  5.   

    一般是在a.cpp中.但如果在a.h中要用到b.h中的类时就应在a.h中加入include b.h,看实际情况.
      

  6.   

    因为cpp类里要用到的变量或是函数或是其他的宏等等,可能在头文件.h里有定义,所以cpp文件在开始的时候包含必要的头文件。