Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
114 views
in Technique[技术] by (71.8m points)

c++ - Is "long long" = "long long int" = "long int long" = "int long long"?

I found both long int long and int long long can compile for a variable type. Is there any difference between long int long, int long long , long long and long long int?

In general, is the type identical if it has the same number of long?

1 long:

long l;
int long il;
long int li;

2 long:

long long ll;
int long long ill;
long int long lil;
long long int lli;

Also if above is right, are the following declarations also identical?

long long* llp;
int long long* illp;
long int long* lilp;
long long int* llip;
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

According to the C++ Standard (7.1.6.2 Simple type specifiers)

3 When multiple simple-type-specifiers are allowed, they can be freely intermixed with other decl-specifiers in any order.

So for example the following declaration is valid

long static long const int x = 10;

You may even use constexpr specifier along with const qualifier. For example

constexpr long static long const int x = 10;

By the way, we forgot about specifier signed! Let's add it for example before declarator x

constexpr long static long const int signed x = 10;

In C you may also use several type qualifiers in the same declare specifier sequence. According to the C Standard (6.7.3 Type qualifiers)

5 If the same qualifier appears more than once in the same specifier-qualifier-list, either directly or via one or more typedefs, the behavior is the same as if it appeared only once....

So for example in C the following declaration is also valid

const long const long static const int const signed x = 10;

So if you are paid according to the number of symbols typed in the program then I advise you to use such declarations. :)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...