c - 为什么我的函数会收到一个错误,指出它未在此范围内定义?我只是想调用该函数并让它立即运行

标签 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文件,那么有两点需要注意:

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

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

请注意,我在这个例子中没有给出原型(prototype),因为完整的函数是在使用之前定义的,所以编译器知道它的全部内容。

关于c - 为什么我的函数会收到一个错误,指出它未在此范围内定义?我只是想调用该函数并让它立即运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56100766/

相关文章:

c - C 语言可以从文件中读取常量吗?

c++ - Char 数组和 uintptr_t

c - 如何在 C 语言中声明一个可变大小的二维数组?

c - 如何修复我的代码以读取返回指向结构的指针的函数中的字符串

c - 数组未正确读取

c - C中的s_strip(s, del)函数,还有比这个更优化的版本吗?

c - 当我使用 -std=gnu99 编译时,我还应该定义 _GNU_SOURCE 吗?

c - 排序 100000 个元素未完成

c - 您是否必须将 `u` 后缀附加到无符号整数?

c - gdb核心转储 "is not a core dump: File format not recognized"