c - 为什么我的函数收到未在此范围内定义的错误?我只是想调用该函数并让它立即运行
问题描述
我只是想调用并运行 createList 函数,但我收到一个错误,即未在此范围内定义创建列表。我不确定我做错了什么。
typedef struct state {
char trans[100];
bool final;
struct state *next;
} STATE;
STATE *stu = NULL;
stu = createList(stu, trans, states);
STATE* createList (STATE *stu, char trans, int states) {
for (int i = states; i > 0; i--) {
printf("%d", i); /*ccode check*/
}
return stu;
}
解决方案
如果这是你的 C 文件,那么有两点需要注意:
您必须先声明该函数(即原型),然后才能使用它。
您不能在全局级别拥有可执行代码。
尝试:
typedef struct state {
char trans[100];
bool final;
struct state *next;
} STATE;
STATE *stu = NULL;
STATE* createList (STATE *stu, char trans, int states) {
for (int i = states; i > 0; i--) {
printf("%d", i); /*ccode check*/
}
return stu;
}
int main (void)
{
stu = createList(stu, trans, states);
return 0;
}
请注意,在这个例子中我没有给出原型,因为完整的函数是在使用之前定义的,所以编译器知道一切。
推荐阅读
- scala - 将列表的嵌套列表与列表进行比较
- docker - how to replicate docker volume host machine to another host machine volume--volume high availability host to host
- asp.net - Dependency injection @ Runtime
- c# - 如何从 Microsoft Bot C# 调用 On Premise API
- go - 新连接失败时使用数据库/sql 库并从保管库中获取密码
- c - How to pass "a pointer to a function with parameters" to another function
- bash - 如何检查文件是否存在并且是文本文件?
- vue.js - 在事件总线事件上打开模式对话框
- laravel - 如何在组件的脚本部分使用 vue-i18n 翻译功能
- rdf - rdfproc took forever to parse a 8.33 MB file?