首页 > 解决方案 > 为什么我的函数收到未在此范围内定义的错误?我只是想调用该函数并让它立即运行

问题描述

我只是想调用并运行 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

解决方案


如果这是你的 C 文件,那么有两点需要注意:

  1. 您必须先声明该函数(即原型),然后才能使用它。

  2. 您不能在全局级别拥有可执行代码。

尝试:

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;
}

请注意,在这个例子中我没有给出原型,因为完整的函数是在使用之前定义的,所以编译器知道一切。


推荐阅读