① c语言:程序编译(或生成)时发现语法错误“未声明的标识符”,怎么解决
层层大括号与后边的分号,层层检查,有不配对的,通常习惯性写程度,第一层都要留下标,说明是那一些的头,那一层的尾,将来修改程序量方便,也就是结构化模块构思,一种行为习惯与方式。
② C语言编程提示 “price”: 未声明的标识符 怎么回事 请各位大侠指点
首先我讲一下,你的Caculate()函数里面所用到的price变量没有定义,因此会提示标识符price没有定义。。。
其次{代码块}这是定义了一个块所以它里面的变量只能在块里面用,这样的变量称之为局部变量,而你所定义的price在main函数块里,所以在你的Caculate()函数块不能用
#include<stdio.h>
float price=0; /*可以在这个位置定义一个全局变量*/
int main(){
int Caculate();
int choice;
int off=0;
choice=price/100;
switch(choice){
case 0: off=0; break;
case 1:
case 2: off=1; break;
case 3:
case 4:
case 5: off=2; break;
case 6:
case 7:
case 8:
case 9:
case 10:off=3; break;
}
price=price*(10-off)/10;
printf("The final price is %10.2f",price);
return 0;
}
int Caculate(){
/*或者在这个位置定义一个float price*/
do{
scanf("%f",&price);
price+=price;
}
while(price!=0.0);
return(price);
}
③ 未声明的标识符”是怎么回事
它们通常来自忘记包含包含函数声明的头文件,例如,此程序将给出“未声明的标识符”错误:
例如:缺少标题
intmain(){std::cout<<"Helloworld!"<<std::endl;return0;}
要修复它,我们必须包含标题:
#include<iostream>intmain(){std::cout<<"Helloworld!"<<std::endl;return0;}
如果您编写了标题并正确包含它,标题可能包含错误的包含保护。
有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/aa229215(v=vs.60).aspx。
(3)c语言中g未声明标识符扩展阅读
拼写错误的变量
当拼错变量时,会出现另一个常见的初学者错误:
intmain(){intaComplicatedName;AComplicatedName=1;/*mindtheuppercaseA*/return0;}
范围不正确
例如,此代码会出错,因为您需要使用std::string:
#include<string>intmain(){std::strings1="Hello";//Correct.strings2="world";//WRONG-wouldgiveerror.}
申报前使用
voidf(){g();}voidg(){}
g在首次使用之前尚未申报。要修复它,要么移动g之前的定义f:
voidg(){}voidf(){g();}
或者在g之前添加声明f:
voidg();//declarationvoidf(){g();}voidg(){}//definition
④ weight未声明标识符的解决
按顺序引入文件。
引入头文件还是有顺序之分的,不能随意的放置头文件,位置也要放正确,不然会报错。
未声明的标识符指未声明的标识符,是c语言中的错误提示,一般使用的变量或函数是未定义的,或者定义的时间与调用的时间不一致。
⑤ [新手]c语言无故出现未声明的标识符 强制将文件后缀改成cpp后就没事了
C99 的规范,变量可以在使用之前的任意位置(一般是函数内的)定义。但如果是之前的规范,那么变量的定义都集中在函数开始的位置。.cpp 文件对应的是c++编译器,同样遵循 C99 规范。但是如果是 .c 文件, IDE 默认为 C 编译器,如果该编译器不遵循 C99 协议,则变量的定义位置如果不对,就找不到而会报编译错误。
⑥ 在c语言编译过程中出现未标明的标志符(undeclared identifier)怎么办
void CS_LineClip(x1,y1,x2,y2,XL,XR,YB,YT);每个形参前都该声明类型
void CS_LineClip(float x1,float y1,float x2,float y2,float XL,float XR,float YB,float YT);
还有这一句
float x1,y1,x2,y2,XL,XR,YB,YT;
放在int encode前面。
⑦ 为什么老是提示:未声明的标识符a,b,望c语言大神指教
a 和b是main里面的, 没有传到print中. 所以出错.
这个最好的做法是,
#include<stdio.h>
intAdd(inta,intb);
voidPrint(intx,inty);
voidmain()
{
inta,b,y;
printf("输入两个整数:");
scanf("%d%d",&a,&b);
printf("输入计算结果:");
scanf("%d",&y);
Print(Add(a,b),y);
}
intAdd(inta,intb)
{
intc;
c=a+b;
returnc;
}
voidPrint(intx,inty)
{
if(y!=x)
printf("notcorrect!Tryagain!");
else
printf("right");
}
⑧ C语言这个未声明的标识符,该怎么改
system函数在stdlib.h中。
函数声明为
int system(char *command);
功能是执行一个当前操作系统的 shell命令,windows下调用就如同在ms-dos窗口中执行一项command中存储的命令。
比如system("dir");
会显示当前目录下的文件信息。
最常用的system指令是system("pause"); 作用是使命令行窗口暂停,出现一行"Press any key to continue"的文字,一般用于主函数结尾以保存现场供调试/查看。
getch():
所在头文件:conio.h
函数用途:从控制台读取一个字符,但不显示在屏幕上
函数原型:int getch(void)
返回值:读取的字符
例如:
char ch;或int ch;
getch();或ch=getch();
用getch();会等待你按下任意键,再继续执行下面的语句;
用ch=getch();会等待你按下任意键之后,把该键字符所对应的ASCII码赋给ch,再执行下面的语句。
易错点
1.所在头文件是conio.h。而不是stdio.h。
2.在使用之前要调用initscr(),结束时要调用endwin()。否则会出现不输入字符这个函数
也会返回的情况。
3.在不同平台,输入回车,getch()将返回不同数值,而getchar()统一返回10(即\n)
1)windows平台下ENTER键会产生两个转义字符 \r\n,因此getch返回13(\r)。
2)unix、 linux系统中ENTER键只产生 \n ,因此getch返回10(\n)。
3)MAC OS中ENTER键将产生 \r ,因此getch返回13(\r)。
getch();并非标准C中的函数,不存在C语言中。所以在使用的时候要注意程序的可移植性。国内C语言新手常常使用getch();来暂停程序且不知道此函数来源,建议使用getchar()或者使用<stdlib.h>头文件中的system("PAUSE")调用系统命令暂停;(如果情况允许)代替此功能或更换一款编译器。
在调用自己不熟悉的函数时,请查阅c语言手册。把函数所在的头文件包含到程序中。
⑨ C语言中未声明标识符,可以怎样修改
在 C 语言中,必须首先在程序的最开头进行变量声明,例如:假设你需要在程序后面使用变量 pi=3.1415926,那么必须在程序的最开始就要对变量 pi 进行声明。
int l,m,n ;
float zhouchang = 0.0 , pi = 3.1415926, r = 4.0 ;
......
zhouchang = 2*pi*r ;
l = 5 ; m = 10 ; n = 15 ; /* 假设 l、m、n 的值为:5、10、15 */
这样写才是正确的。
而不能够像 C++那样,随时需要使用哪一个变量,随时都可以对变量进行声明。这就是 C 语言和C++语言的不同之处之一。
⑩ 请问一下C语言程序出现错误未定义的标识符应该怎么改
把那几个宏的位置提到前面去