将const变量的成员分配给另一个const

亚当·高斯曼

我正在尝试定义const具有相同数据结构的两个变量。我要确保每个变量的所有成员都完全相同,但我要更改的成员除外。由于我不想维护同一代码的两个精确副本,因此我想“为什么不使用一个成员中的现有成员来初始化另一个成员?”

这是代码示例:

typedef struct {
    int a;
    int b;
} aStruct;

const aStruct foo = {
    .a = 10,
    .b = 20
};

const aStruct bar = {
    .a = 15,
    .b = foo.b
};

当我尝试编译此代码时,出现错误:

foo.c:13:14: error: initializer element is not constant
         .b = foo.b
              ^~~
foo.c:13:14: note: (near initialization for ‘bar.b’)

我刚接触C,所以我不完全了解常量和数据结构的工作原理,尤其是将它们组合在一起时。有人可以帮我弄清楚这里发生了什么吗?

让·巴蒂斯特·尤涅斯(Jean-BaptisteYunès)

这是因为您试图在文件范围内初始化全局变量,并且在该范围内只能使用常量(foo.b不是)来初始化值。我的编译器给出了更好的信息:

error: initializer element is not a compile-time constant
    .b = foo.b
         ~~~~^ 1 error generated.

如果您尝试在块范围内执行相同的操作,那将是正确的:

typedef struct {
    int a;
    int b;
} aStruct;

int main() {
  const aStruct foo = {
    .a = 10,
    .b = 20
  };

  const aStruct bar = {
    .a = 15,
    .b = foo.b
  };
}

因此,最好使用一些定义将全局变量初始化为相同的值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将const变量的成员分配给另一个const

来自分类Dev

将Object成员变量分配给另一个双重强指针

来自分类Dev

将struct的第一个变量分配给另一个

来自分类Dev

Python将值从一个变量分配给另一个

来自分类Dev

将数组子集分配给Matlab中另一个数组的成员

来自分类Dev

将数组子集分配给Matlab中另一个数组的成员

来自分类Dev

将String变量的值分配给另一个String变量

来自分类Dev

如何将公式的值(包含变量)分配给另一个变量

来自分类Dev

无法将结构变量分配给另一个结构变量

来自分类Dev

将参数分配给另一个变量有什么好处

来自分类Dev

将$ PWD / *分配给另一个变量

来自分类Dev

如何将变量列表分配给另一个列表

来自分类Dev

将另一个网页的特定数据分配给变量或数组

来自分类Dev

PHP将php变量分配给另一个php条件

来自分类Dev

将$ @分配给Shell函数中的另一个变量

来自分类Dev

bash在操作后将变量分配给另一个

来自分类Dev

将const char *分配给const char **后,我遇到了一个错误

来自分类Dev

在Bash中将一个变量分配给另一个变量?

来自分类Dev

如何将一个JavaScript文件中的变量分配给另一个JS File?

来自分类Dev

将内存分配给const char ***变量时出现错误“ realloc():下一个大小无效”

来自分类Dev

Java-使用变量值将类型分配给另一个变量?

来自分类Dev

C#将指向引用类型的变量分配给另一个变量,后者中存储了什么?

来自分类Dev

将malloc变量也分配给另一个变量后,应该如何释放它?(C语言)

来自分类Dev

python即使将输入变量分配给另一个变量,如何更改它的值?

来自分类Dev

如何将包含空格的变量分配给 KSH 中的另一个变量

来自分类Dev

如何将字符串和变量的组合分配给另一个变量?

来自分类Dev

将一个信号量分配给另一个

来自分类Dev

将一个shared_ptr分配给另一个

来自分类Dev

将一个对象分配给另一个对象Javascript

Related 相关文章

  1. 1

    将const变量的成员分配给另一个const

  2. 2

    将Object成员变量分配给另一个双重强指针

  3. 3

    将struct的第一个变量分配给另一个

  4. 4

    Python将值从一个变量分配给另一个

  5. 5

    将数组子集分配给Matlab中另一个数组的成员

  6. 6

    将数组子集分配给Matlab中另一个数组的成员

  7. 7

    将String变量的值分配给另一个String变量

  8. 8

    如何将公式的值(包含变量)分配给另一个变量

  9. 9

    无法将结构变量分配给另一个结构变量

  10. 10

    将参数分配给另一个变量有什么好处

  11. 11

    将$ PWD / *分配给另一个变量

  12. 12

    如何将变量列表分配给另一个列表

  13. 13

    将另一个网页的特定数据分配给变量或数组

  14. 14

    PHP将php变量分配给另一个php条件

  15. 15

    将$ @分配给Shell函数中的另一个变量

  16. 16

    bash在操作后将变量分配给另一个

  17. 17

    将const char *分配给const char **后,我遇到了一个错误

  18. 18

    在Bash中将一个变量分配给另一个变量?

  19. 19

    如何将一个JavaScript文件中的变量分配给另一个JS File?

  20. 20

    将内存分配给const char ***变量时出现错误“ realloc():下一个大小无效”

  21. 21

    Java-使用变量值将类型分配给另一个变量?

  22. 22

    C#将指向引用类型的变量分配给另一个变量,后者中存储了什么?

  23. 23

    将malloc变量也分配给另一个变量后,应该如何释放它?(C语言)

  24. 24

    python即使将输入变量分配给另一个变量,如何更改它的值?

  25. 25

    如何将包含空格的变量分配给 KSH 中的另一个变量

  26. 26

    如何将字符串和变量的组合分配给另一个变量?

  27. 27

    将一个信号量分配给另一个

  28. 28

    将一个shared_ptr分配给另一个

  29. 29

    将一个对象分配给另一个对象Javascript

热门标签

归档