C++ 在奥威尔开发公司C++;石斑鱼类?

C++ 在奥威尔开发公司C++;石斑鱼类?,c++,warnings,C++,Warnings,我最近写了下面的简单程序,但编译器显示了警告 #include <iostream> int main() { int a(); std::cout<<a; return 0; } #包括 int main() { int a(); std::cout它可能看起来像是a作为int的定义,但是: int a(); 声明一个不带参数的函数a,并返回int 使用: 相反 std::cout<<a; std::cout它可能看起来像是a作

我最近写了下面的简单程序,但编译器显示了警告

#include <iostream>
int main()
{
    int a();
    std::cout<<a;
    return 0;
}
#包括
int main()
{
int a();
std::cout它可能看起来像是
a
作为
int
的定义,但是:

int a();
声明一个不带参数的函数
a
,并返回
int

使用:

相反

std::cout<<a;
std::cout它可能看起来像是
a
作为
int
的定义,但是:

int a();
声明一个不带参数的函数
a
,并返回
int

使用:

相反

std::cout<<a;
std::cout
int a();
声明一个函数,而不是一个变量。如果希望
a
为零初始化变量,则需要

int a{};  // C++11 or later
int a = int();
int a(0);
int a = 0;
int a();
声明一个函数,而不是一个变量。如果希望
a
为零初始化变量,则需要

int a{};  // C++11 or later
int a = int();
int a(0);
int a = 0;

inta()“……/代码”是一个函数声明。这是…C++语法中有歧义,所以任何可以解释为函数声明的东西都是。@ ListNeasraceReSnRead我问史葛本人,他说他把所有的模糊性看作是最令人烦恼的解析。我多次讨论过这个问题,所以我刚刚结束了EMAILN。因为他创造了这个词,所以问他。@PravasiMeet:哦,你的意思是因为缺少定义和odr的使用?
inta()“……/代码”是一个函数声明。这是…C++语法中有歧义,所以任何可以解释为函数声明的东西都是。@ ListNeasraceReSnRead我问史葛本人,他说他把所有的模糊性看作是最令人烦恼的解析。我多次讨论过这个问题,所以我刚刚结束了EMAILN。自从他创造了这个词,我就开始问他。@PravasiMeet:哦,你的意思是因为缺少定义和odr的使用?