小编Jet*_*max的帖子

c 中的全局结构(初始化元素不是编译时常量)

我对 C 很陌生,我有一些问题。

我有以下结构定义:

struct env {
  struct env *next;
  char varName[8];
  int n;
};
Run Code Online (Sandbox Code Playgroud)

我想最终在我的一些函数中创建多个这些结构,所以我创建了一个函数来做到这一点:

struct env *mkEnv(char c[8] , int value , struct env *toadd){
    struct env *enviroment = malloc(sizeof(struct env));
    enviroment->n = value;
    enviroment->next = toadd;
    strcpy(enviroment->varName , c);
    return enviroment;
}
Run Code Online (Sandbox Code Playgroud)

我想全局创建一个这样的结构,它是具有一些常量值的常量,并且最初具有指向下一个结构 NULL 的指针。

所以我做了这样的事情:

    //not in a function
    struct env *list = mkEnv("pot" , 0 , NULL);

    //Beginning of a function
    int eval(struct expression *exp){
        ... // code here that might add a new structure …
Run Code Online (Sandbox Code Playgroud)

c struct global compile-time

3
推荐指数
1
解决办法
2028
查看次数

标签 统计

c ×1

compile-time ×1

global ×1

struct ×1