我用Win32 Console Application->A Simple Application编了一个很简单的双向链表,但是在编译时程序却提示错误BOOL,NULL未定义把BOOL改成bool,NULL改成0编译却通过了,可是我已经习惯了用BOOL,NULL。请问大家我怎么才能用呢?

解决方案 »

  1.   

    BOOL,NULL是MFC中的~
    Console需要标准的C/C++~
      

  2.   

    如果习惯了,可以自己用#define定义以下:
    #define BOOL bool
    #define NULL 0
      

  3.   

    如下:
    typedef BOOL int;
    const BOOL FALSE=0;
    const BOOL TRUE=1;const int NULL=0;
      

  4.   

    BOOL和NULL不是 MFC定义的,是windows的类型,如果是
    win32 console,
    #include "Windows.h"以后类型就都有了,
    还有
    #define BOOL bool
    会有问题的,
    实际上应该是
    #define BOOL int
    还有
    #define FALSE 0
    #define TRUE 1
    BOOL是4个字节的,
    而bool在vc5.0以前是4个字节,之后是一个字节,所以如果用的不对,可能会有bug啊,楼上的兄弟注意了
      

  5.   

    创建工程的时候,选择支持MFC。
      

  6.   

    ancienttale(voidman) 你好:我试了一下,你的是可行的,但是我有一个疑问就是#include "windows.h" 后程序是否会变得比以前大呢?(windows.h中包含很多东西)
      

  7.   

    BOOL Boolean variable (should be TRUE or FALSE). 
    NULL is the null-pointer value used with many pointer operations and functions.
      

  8.   

    O~原来如此~
    我以为都是mfc的东西呢~
      

  9.   

    BOOL是双字节形, bool是单字节型。
    MFC中是如此定义BOOL的:
    #ifndef BOOL
    #define BOOL int
    #endif
    也就是说,BOOL实际上就是int型
      

  10.   

    doskey(锁匠) 
    又在误人子弟,vc里的int时双字节吗?
      

  11.   

    #include "stdafx.h"
    好象一般有这个就没问题了~
      

  12.   

    rivershan(笨猫)
    才怪,
    如果
    stdafx.h里没有什么
    #include "AfxXXX.h"之类的东东,
    或者是#include "windows.h"还不是一样
      

  13.   

    谢谢大家的帮忙,尤其是ancienttale(voidman),马上结贴