C语言未找到标识符

作者&投稿:肇吴 (若有异议请与网页底部的电邮联系)
在c语言中自定义了一个函数,在main中调用时提示找不到标识符,怎么办?~

把定义的函数放在,main函数之前即可。
自定义的函数需要声明在调用之前,比如说在main函数里调用自定义的fun(),则fun()的方法体需要写在main函数之前。
在C语言中的执行总是从main函数开始的,无论main函数在哪个位置都肯定从它开始。如果你定义的函数在main函数之后。
而且在main函数前没有进行该调用函数的声明那么当在main函数中调用的该函数系统将不认识,会有错误提示的,如果定义的函数在main函数之前,那么就没事了。

扩展资料:
C语言中标识符的使用规范:
1、标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线。例如,正确的标识符:abc,a1,prog_to。
2、不能把C语言关键字作为用户标识符,例如if,for,while等。
3、标识符长度是由机器上的编译系统决定的,一般的限制为8字符(注:8字符长度限制是C89标准,C99标准已经扩充长度,其实大部分工业标准都更长)。
4、标识符对大小写敏感,即严格区分大小写。一般对变量名用小写,符号常量命名用大写。
5、标识符命名应做到“见名知意”,例如,长度(length),求和、总计(sum)。
参考资料来源:
百度百科—标识符
百度百科—main函数

#include "stdafx.h"
#include "lzh.h"
哪来的这个头文件?头文件错了,它里面不认识printf.你用通用的头文件stdio.h试试

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
#define M 20

typedef struct score //学生成绩表结构  **前移
{
    char courses[20];
    int semester;
    int result;
    struct score *next;
}scores,*pscore;

pscore creat_score(void); //**声明函数


typedef struct node   //学生信息表结构
{
    int number;
    char name[20];
    struct score *mark;
    struct node *next;
}lnode,*linklist;

typedef struct binode //宿舍树结构
{
    int data;
    struct binode *lchild,*rchild;
    struct node *head;
}bnode,*bitree;

linklist creat_stu()            //输入学生信息
{
    linklist t,head;
    int x;
    printf("please enter the student's number:");
    scanf("%d",&x);
    head=(linklist)malloc(sizeof(lnode));
    t=head;
    while(x>0)
    {
        t->next=(linklist)malloc(sizeof(lnode));
        t->number=x;
        printf("please enter the student's name");
        scanf("%s",t->name);
        t->mark=creat_score();
        t=t->next;
        printf("please enter the student's number");
        scanf("%d",&x);
    }
    t->next=NULL;
    return head;
}

pscore creat_score(void) 
{
     pscore t,head;
    int x;
    printf("please enter the semester:");
    scanf("%d",&x);
    head=(pscore)malloc(sizeof(scores));
    t=head;
    while(x>0)
    {
        t->next=(pscore)malloc(sizeof(scores));
        t->semester=x;
        printf("please enter the coures object:
");
        scanf("%s",t->courses);
        printf("please enter the mark:
");
        //scanf("%d",&t->next); //你想把输入的值赋给谁??
    }
    t->next=NULL;
    return head;
}


函数使用需要声明啊,先声明再使用是个好习惯

strcut score放在struct node前面看看


c语言中的undefined identifier是什么意思
undefined identifier是未定义的标志符,在程序内使用了没有被定义的标志符或者变量,是常见的keil编译错误,引发这一错误的原因是你使用的变量没有被定义。解决办法是找到这个没有被定义的标志或者变量进行定义。另外一种常见的错误就是大小写导致的,如你定义的是unsigned char num,在使用的时候,写成了...

易语言进程标识符找不到怎么办
count, 整数型 .局部变量 PID, 整数型 进程数组 = 取系统进程列表 ()num = 取数组成员数 (进程数组).计次循环首 (num, count).如果真 (进程数组 [count].进程名称 = “e.exe”)PID = 进程数组 [count].进程标识符 跳出循环 ().如果真结束 .计次循环尾 ()调试输出 (PID)

vs2019未定义标识符gets故障原因是什么
微软将 Visual J++ 改版为 Visual J#,但至 Visual Studio 2008 时取消支持 Visual J#;而 Visual Studio 2010 时,并入支持新语言 Visual F#。Visual Studio 2010 原生支持:Visual Basic、Visual C#、Visual C++、Visual F#四种程序语言。C语言:标识符由字母(A-Z,a-z)、数字(0-9)、下划线...

pascal 语言常见错误
226 TLS初始化错误 Pascal编译错误对照表 下面列出在编译程序时可能出现的错误,在集成环境下,Turbo Pascal将自动加载源程序并定位于出错处。l内存溢出 2缺标识符 3标识符未定义 4标识符重定义 5语法错误 6实型常量错 7整型常量错 8字符串常量跨行 9文件嵌套过多 10非正常文件结束 11行过长 ...

Keil里C语言程序标识符未定义
是不是版本不同,你没那个头文件 CLK CS 要自己定义吧,看芯片上具体接单片机哪个引脚。比如在前面定义 sbit CLK = P0_0; sbit CS = P0_2;

c语言中运行报错 error C2018: unknown character '0xa1',可是整个语 ...
错误原因:'0xa1' 是一个字符,ASCII码是161(16进制0xa1),这是因为错误行含有全角字符,全角的空格的编码是'0xa1'。解决方法:仔细检查错误行看是否含有全角空格\\分号等待,或者注释掉,再重新写一遍 注意:每行的前面都有个看不见的全角空格。

C语言错误提示identifier 'b'是什么意思
identifier 'b'就是标识符'b'出现了错误的意思。常见的标识符错误提示有:undefined identifier 即标识符未定义。C语言经典错误:void main()的用法并不是任何标准制定的。 C语言标准语法是int main,任何实现都必须支持int main(void) { \/* ... *\/ }和int main(int argc, char* argv[]) ...

在C语言源程序中,标识符和程序分隔符必须用什么型字符?
在 C 语言源程序中,标识符和程序分隔符必须使用空格字符来分隔。空格字符包括空格、制表符和换行符。这些字符用于将源代码分成单词和行。C 语言编译器会忽略源代码中的空格字符,因此您可以在源代码中使用空格字符来使代码更易于阅读和理解。但是,您应该避免在标识符中使用空格字符,因为这会导致编译器...

c语言出现expected identifier or'('是什么意思
这个错误信息“expected identifier or '或者一个左括号'('的地方遇到了其他问题。详细解释如下:1. 标识符的作用:在C语言中,标识符用于给变量、函数、数组等命名。它们是程序的基本组成部分,使得代码具有可读性和可维护性。编译器需要这些标识符来识别和处理代码中的各种元素。2. 错误信息的含义...

为什么老是提示:未声明的标识符a,b,望c语言大神指教
a 和b是main里面的, 没有传到print中. 所以出错.这个最好的做法是,include<stdio.h>int Add(int a, int b);void Print(int x,int y);void main(){int a,b,y;printf("输入两个整数:");scanf("%d%d",&a,&b);printf("输入计算结果:");scanf("%d",&y);Print(Add(a,b),y);}...

山南地区18970217441: C语言未找到标识符 -
麻季龙骨: #include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<string.h> #define M 20typedef struct score //学生成绩表结构e79fa5e98193e4b893e5b19e31333335326136 **前移 {char courses[20];int semester;int result;struct score *next; }...

山南地区18970217441: c语言中,找不到标识符 -
麻季龙骨: 你在main函数前没声明average函数,函数名是描述有类型对象的标识符,出现了在下面调用(也就是对函数名的引用)时报错.声明位置影响了函数的作用域.

山南地区18970217441: 找不到标识符,该怎么解决 -
麻季龙骨: 在程序入口的cpp(有main函数)里这样写.函数A明显是定义过的.但仍然编译不通过其实原因是这个CPP并没有面向对象的结构.所以进行编译时是“顺序编译”的,而main函数的定义又在A的定义之前、自然找不到标识符了 解决方案.把A函数的定义改到main函数的前面

山南地区18970217441: visual studio2012编C语言程序是提示说找不到一些标识符 -
麻季龙骨: #include 头文件 有些函数需要头文件比如这个就需要 #include <studio.h>

山南地区18970217441: 在运行c语言时,出现一个错误:“printf”: 找不到标识符 怎么办 谢谢 请高手赐教 -
麻季龙骨: #include

山南地区18970217441: c语言 菜鸟求助 “eles”: 找不到标识符 为什么??????? -
麻季龙骨: else(a>b)//不是eles写错了

山南地区18970217441: c语言 用vs2010调试 为什么提示找不到 标示符谢谢了,大神帮忙啊 -
麻季龙骨: 用malloc和free,好像要包含 stdlib.h 头文件 麻烦采纳,谢谢!

山南地区18970217441: printf找不到标识符 -
麻季龙骨: printf找不到标识符是设置错误造成的,解决方法为: 1、保留字区分字母大小写,大写的不是保留字. 2、查询保留字内容. 3、f,else,for 等单词是保留字,也不能将其用作标识符. 4、标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字.标识符不能和 Python 中的保留字相同. 5、标识符的字母区分大小写,意义不同.

山南地区18970217441: C语言编程找代码中的标识符 -
麻季龙骨: 除了32个关键字以外,由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不是数字的,都是标识符

山南地区18970217441: c语言:程序编译(或生成)时发现语法错误“未声明的标识符”,怎么解决? -
麻季龙骨: 层层大括号与后边的分号,层层检查,有不配对的,通常习惯性写程度,第一层都要留下标,说明是那一些的头,那一层的尾,将来修改程序量方便,也就是结构化模块构思,一种行为习惯与方式.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网