CとC++の違い

936 ワード

1.FALSE/TRUEとfalse/trueの違い:false/trueはc言語にはない、標準C++言語に新たに追加されたキーワードであるが、FALSE/TRUEはdefineを通じて、用途はCとC++における環境の違いを解決することであり、以下はFALSE/TRUEのwindefである.hの定義:
#ifndef   FALSE
#define   FALSE   0
#endif
#ifndef   TRUE
#define   TRUE   1
#endif 
すなわちFALSE/TRUEはintタイプであり、false/trueはboolタイプである.だから両者は違いますが、私たちは使用中にこのような感じがしません.C++が暗黙的な変換をしてくれるからです.
2.boolの大きさとBOOLの違い:
C 99以前はbool型は定義、C 99ではstdbool.hで定義した_Boolはboolで、もちろんtrueやfalseも定義されていません.しかしC++にはbool型があり、trueやfalseも定義されている.boolはC++で1バイトを占有し、BOOLはintタイプであり、intタイプの大きさは具体的な環境によって決まる.このようにfalse/trueは1バイトしか占有しないが、TRUE/FALSEは具体的な環境では、以下はBOOLがwindefにある.hの定義:
typedef   int   BOOL; 

3.NULLと0の違い:windefを見てみましょう.hにおけるNULLの定義:
#ifndef   NULL
#ifdef   __cplusplus//       C++     
#define   NULL   0
#else
#define   NULL   ((void   *)0)
#endif
#endif 
だから、違いはありませんが、Cの中で強制的なタイプ変換をします.