Hussain Akbar
Hussain Akbar

Reputation: 686

Data type sizes in C++ and VB.NET

I am working on developing an application in VB.NET which uses a third party DLL for which the documentation is for C++. For the data type conversions, I was using two pages:

https://www.tutorialspoint.com/cplusplus/cpp_data_types.htm

https://learn.microsoft.com/en-us/dotnet/visual-basic/language-reference/data-types/

I was looking up the size in the C++ page and the equivalent size for VB.NET; e.g. int is 4 bytes in C++ so the corresponding VB.NET would be INT32 or Integer.

However, that was giving me unexpected results.

I then noticed that C++ long int is given as 8 bytes with values of -2,147,483,648 to 2,147,483,647 while VB.NET long is also given as 8 bytes with a data type of INT64 but the values are shown as -9,223,372,036,854,775,808 through 9,223,372,036,854,775,807.

Also, the sizes for C++ int (4 bytes) and long (8 bytes) are different but the ranges are the same.

Why the two (wildly) differing ranges for an 8 byte variable? Is one of the pages wrong?

Upvotes: 1

Views: 550

Answers (1)

Lorenzo Martini
Lorenzo Martini

Reputation: 373

Check this: https://learn.microsoft.com/en-gb/cpp/cpp/data-type-ranges?view=msvc-170 Long is 4 bytes. The vb.net page is correct, the C++ one is not.

Upvotes: 3

Related Questions