int64_t

时间:2016-05-21 16:41:29

标签: c++ c gcc c89

  • C89 long long中不存在(已在C99中添加)
  • C++03 {和C++98long long不存在(已添加到C++11

现在如果我编译它:

typedef long long myType;

int main()
{
   myType a;
}

使用(g++ sourceFile.cpp -std=c++03 -pedanticgcc sourceFile.c -std=c89 -pedantic)它会发出警告,表示当前选择的标准不支持long long

但是,如果我编译它(使用相同的标志):

#include <stdint.h> //in case of C
#include <cstdint> //in case of C++

int main()
{
    int64_t a;
}

即使stdint.hcstdint只包含stdint.h并在std内显示名称)包含

,我也不会收到任何警告
...
typedef long long int64_t;
...

我想知道这是如何工作的。

1 个答案:

答案 0 :(得分:12)

  

即使stdint.h ......我也不会收到任何警告。

这是因为默认情况下,GCC不会为系统标头生成警告。您可以通过命令行选项private void getPrice(String pce) { Arrays.sort(products); int searchProductArray = Arrays.binarySearch(products, pce); if (searchProductArray >= 0) { price = prices[searchProductArray]; productName = products [searchProductArray]; // isValidOrder = true; } else { price = 0.0; isValidOrder = false; message = "**ERROR**: Invalid product name"; } } ...

订购它