在某些变量初始化中“l”的含义是什么?例如:
#define maxpossible (1000000000L)
double A = 1L;
double B = 999999999l;
“L”和“l”有区别吗?
在某些变量初始化中“l”的含义是什么?例如:
#define maxpossible (1000000000L)
double A = 1L;
double B = 999999999l;
“L”和“l”有区别吗?
这是一个后缀类型说明符,A您B可以在此处阅读有关浮点文字的更多信息。简短的回答是,L两者l都表明long double。因为maxpossible您可以在此处阅读有关整数文字 并L表示long.
编辑
正如 Mike Seymour 亲切地指出的那样,所有的文字都是integer文字。这只是表明,当你不理智地检查你的答案时,你会说错话。一个简单的健全性检查如下:
#include <iostream>
#include <typeinfo>
int main()
{
std::cout << typeid( decltype( 1L ) ).name() << std::endl ;
std::cout << typeid( decltype( 999999999l ) ).name() << std::endl ;
std::cout << typeid( decltype( 1000000000L ) ).name() << std::endl ;
}
这给了我l每一个,并通过c++filt -t它给了我long。什么会使文字变成浮点文字?要么:
4e2例如:
std::cout << typeid( decltype( .1l ) ).name() << std::endl ;
std::cout << typeid( decltype( 1e2L ) ).name() << std::endl ;
这给了我e两种情况,并且运行它c++filt -t给了我long double。
因为这些是文字常量。
后缀lorL使常数为longor long double。
在您的示例中,maxpossible是long integer. A并且B都是长双打。但是由于您将它们声明为double,因此它们存储为doubles.