C ++数据类型与C#数据类型

作为一名学习C ++的专业C#程序员,我想保持数据类型与C#相同。 我写了一个应该有用的头文件。 我想知道的是它是否正确。

// boolean //#DEFINE bool char //#DEFINE true 0x01 //#DEFINE false 0x00 // 8-bit integers #DEFINE byte unsigned char #DEFINE UInt8 unsigned char #DEFINE Byte unsigned char #DEFINE sbyte char #DEFINE Int8 char #DEFINE SByte char // 16-bit integers #DEFINE ushort unsigned short int #DEFINE UInt16 unsigned short int #DEFINE short short int #DEFINE Int16 short int // 32-bit integers #DEFINE uint unsigned int #DEFINE UInt32 unsigned int //#DEFINE int int #DEFINE Int32 int // 64-bit integers #DEFINE long long long #DEFINE Int64 long long #DEFINE ulong unsigned long long #DEFINE UInt64 unsigned long long // 32-bit floating point //#DEFINE float float #DEFINE Single float // 64-bit floating point //#DEFINE double double #DEFINE Double double 

除了可怕的风格,这些宏甚至没有按照你期望的方式工作。

 #define long long long 

容易出现各种各样的问题。

http://ideone.com/Jg9DK

颠倒宏定义的顺序也不能完全解决问题。

http://ideone.com/45wUS

出现类似的问题

 #define short short int 

http://ideone.com/dERGm

C ++中的内置类型具有实现定义的大小,而C#没有。 如果您想要等效行为,请使用的typedef。 不仅是字节,还有位数! 此外, char可能会也可能不会signed – 请使用signed char

虽然你所做的一切听起来像是一个糟糕的主意。 只学习C ++,而不是一些愚蠢的混合语言。