福建众利建设工程网站,英语网站海报手抄报怎么做,html5汽车网站模板,wordpress判断手机电脑bug——多重定义 你的问题是在C代码中遇到了reference to data is ambiguous的错误。这个错误通常发生在你尝试引用一个具有多重定义的变量时。 在你的代码中#xff0c;你定义了一个全局变量data#xff0c;同时#xff0c;C标准库中也有一个名为data的函数模板…bug——多重定义 你的问题是在C代码中遇到了reference to data is ambiguous的错误。这个错误通常发生在你尝试引用一个具有多重定义的变量时。 在你的代码中你定义了一个全局变量data同时C标准库中也有一个名为data的函数模板。当你在fib函数中使用data时编译器无法确定你是想引用全局变量data还是std::data因此它给出了一个模糊的错误。 为了解决这个问题你可以改变全局变量data的名称或者在调用时明确指定你要引用的是全局变量。 解决方案一更改全局变量名称 cpp #include iostream using namespace std; int mod1e97; int fibData[10000]; // 更改名称 int fib(int n){ if(n1||n2){fibData[n]1;return fibData[n];} if(fibData[n]!0)return fibData[n]; fibData[n]fibData[n-1]fibData[n-2]; return fibData[n]; } int main() { int t; cint; for(int i0;it;i){ int n; cinn; coutfib[n]; } return 0; } 解决方案二在调用时明确指定你要引用的是全局变量 cpp #include iostream using namespace std; int mod1e97; int data[10000]; int fib(int n){ if(n1||n2){::data[n]1;return ::data[n];} // 在前面加上 :: 明确指定你要引用的是全局变量 if(::data[n]!0)return ::data[n]; ::data[n]::data[n-1]::data[n-2]; return ::data[n]; } int main() { int t; cint; for(int i0;it;i){ int n; cinn; coutfib[n]; } return 0; }