Hej!
Har börjat och försökt lärt mig C++ på egen hand, har kollat mycket YouTube klipp och det går mycket framåt.
Har även sökt denna fråga på Google och får relativt bra svar, jag vill bara vara säker som inget slår tillbaka.
Har fastnat vid en integer fråga, är osäker på long, int och long long.
Har förstått att man kan använda "long" framför int, som vid "short int" och får således ett lägre int tal som därmed blir lägre sparad information på minnet.
Men när jag kör en test så är "long int" och int samma värde, när jag kollade på en video och sökte information så kunde "long int" vara > eller = int.
När jag kör en test som denna tex,
int main() {
__int64 int64 = 100;
unsigned __int64 unsigned_int64 = 100;
unsigned int unsigned_int = 100;
long int long_int = 100;
int normal_int = 100;
short int short_int = 100;
cout << "__INT64 " << _I64_MAX << " - " << _I64_MIN << endl;
cout << "Size on system: " << sizeof(int64) << " bytes" << endl << endl;
cout << "UNSIGNED __INT64 " << _UI64_MAX << " - " << 0 << endl;
cout << "Size on system: " << sizeof(unsigned_int64) << " bytes" << endl << endl;
cout << "UNSIGNED INT " << UINT_MAX << " - " << 0 << endl;
cout << "Size on system: " << sizeof(unsigned_int) << " bytes" << endl << endl;
cout << "INT " << INT_MAX << " - " << INT_MIN << endl;
cout << "Size on system: " << sizeof(normal_int) << " bytes" << endl << endl;
cout << "LONG INT " << LONG_MAX << " - " << LONG_MIN << endl;
cout << "Size on system: " << sizeof(long_int) << " bytes" << endl << endl;
cout << "SHORT " << SHRT_MAX << " - " << SHRT_MIN << endl;
cout << "Size on system: " << sizeof(short_int) << " bytes" << endl << endl;
long long x = 9223372036854775807;
cout << "LONG LONG, stored value: " << x << endl;
cout << "Size on system: " << sizeof(x) << " bytes" << endl << endl;
system("pause");
}
Får jag detta som svar,
__INT64 9223372036854775807 - -9223372036854775808
Size on system: 8 bytes
UNSIGNED __INT64 18446744073709551615 - 0
Size on system: 8 bytes
UNSIGNED INT 4294967295 - 0
Size on system: 4 bytes
INT 2147483647 - -2147483648
Size on system: 4 bytes
LONG INT 2147483647 - -2147483648
Size on system: 4 bytes
SHORT 32767 - -32768
Size on system: 2 bytes
LONG LONG, stored value: 9223372036854775807
Size on system: 8 bytes
Min stora fråga är, vad ska jag använda?
Vad är vitsen med long int, varför inte bara använda "int" som har precis samma värden?
Jag förstår vitsen och meningen med int, short, unsigned och __int64. Men inte long int eftersom det är samma som int.
Ska jag eller kan jag bara använda int eller kommer något slå mig i bakhuvudet om jag gör det?
Long long verkar också kunna lagra samma värden som __int64, varför inte bara använda __int64?
Är lite trött men jag hoppas ni förstår min fråga, varför använda long long och long int när jag kan använda __int64 och int istället?
Annan intressant information Integer Limits, Microsoft Visual Studio 2015
Använder Visual Studio 2015.
Tack ni som orkade läsa igenom min halv vackra text!