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

-3 c# c++ types

作为一名学习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
Run Code Online (Sandbox Code Playgroud)

Pub*_*bby 10

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

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


Ben*_*igt 6

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

#define long long long
Run Code Online (Sandbox Code Playgroud)

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

http://ideone.com/Jg9DK

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

http://ideone.com/45wUS

发生类似的问题

#define short short int
Run Code Online (Sandbox Code Playgroud)

http://ideone.com/dERGm

  • 对于海湾合作委员会来说,"漫长的漫长"太长了. (5认同)