未声明的标识符”是怎么回事

如题所述

它们通常来自忘记包含包含函数声明的头文件,例如,此程序将给出“未声明的标识符”错误:

例如:缺少标题

int main() {    std::cout << "Hello world!" << std::endl;    return 0;}

要修复它,我们必须包含标题:

#include <iostream>int main() {    std::cout << "Hello world!" << std::endl;    return 0;}

如果您编写了标题并正确包含它,标题可能包含错误的包含保护。

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/aa229215(v=vs.60).aspx。

扩展资料

拼写错误的变量

当拼错变量时,会出现另一个常见的初学者错误:

intmain(){intaComplicatedName;AComplicatedName=1;/*mindtheuppercaseA*/return0;}

范围不正确

例如,此代码会出错,因为您需要使用std::string:

#include <string>int main() {    std::string s1 = "Hello"; // Correct.    string s2 = "world"; // WRONG - would give error.}

申报前使用

voidf(){g();}voidg(){}

g在首次使用之前尚未申报。要修复它,要么移动g之前的定义f:

voidg(){}voidf(){g();}

或者在g之前添加声明f:

voidg();//declarationvoidf(){g();}voidg(){}//definition

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-08
在使用这个标示符之前,没有进行声明,或者定义。
也就是使用的这个标示符是没上户口,新来的、本回答被提问者和网友采纳
第2个回答  2015-03-25
#include<stdio.h>
void swap(int *x,int *y);
int main()
{
int a,b;
scanf("%d %d",&a,&b);
swap(&a,&b);
printf("%d %d\n",a,b);
return 0;
}
void swap(int *x,int* y)
{
int T;
T=*x;
*x=*y;
*y=T;
}
相似回答