Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 警告:初始值设定项元素在加载时不可计算_C_Gcc_C89 - Fatal编程技术网

C 警告:初始值设定项元素在加载时不可计算

C 警告:初始值设定项元素在加载时不可计算,c,gcc,c89,C,Gcc,C89,我无法理解以下场景中的gcc-pedantic输出: $ gcc -pedantic parse.c -lpopt parse.c: In function ‘main’: parse.c:19:7: warning: initializer element is not computable at load time { "bps", 'b', POPT_ARG_INT, &speed, 0, ^ parse.c:20:7: warning: initial

我无法理解以下场景中的gcc
-pedantic
输出:

$ gcc -pedantic parse.c -lpopt
parse.c: In function ‘main’:
parse.c:19:7: warning: initializer element is not computable at load time
       { "bps", 'b', POPT_ARG_INT, &speed, 0,
       ^
parse.c:20:7: warning: initializer element is not computable at load time
       "signaling rate in bits-per-second", "BPS" },
       ^
parse.c:27:7: warning: initializer element is not computable at load time
       { "raw", 'r', 0, &raw, 0,
       ^
parse.c:28:7: warning: initializer element is not computable at load time
       "don't perform any character conversions" },
       ^
使用以下C代码(取自):


C89
标准中,初始值设定项列表必须是编译时常量表达式,因此会出现警告。但是,在
C99中,它是受支持的

在C89中,您可以执行以下操作:

struct poptOption optionsTable[2];

optionsTable[0] = {"bps", 'b', POPT_ARG_INT, &speed, 0,
  "signaling rate in bits-per-second", "BPS" };
optionsTable[1] = {"crnl", 'c', 0, 0, 'c',
  "expand cr characters to cr/lf sequences" };

C89
标准中,初始值设定项列表必须是编译时常量表达式,因此会出现警告。但是,在
C99中,它是受支持的

在C89中,您可以执行以下操作:

struct poptOption optionsTable[2];

optionsTable[0] = {"bps", 'b', POPT_ARG_INT, &speed, 0,
  "signaling rate in bits-per-second", "BPS" };
optionsTable[1] = {"crnl", 'c', 0, 0, 'c',
  "expand cr characters to cr/lf sequences" };

C89
标准中,初始值设定项列表必须是编译时常量表达式,因此会出现警告。但是,在
C99中,它是受支持的

在C89中,您可以执行以下操作:

struct poptOption optionsTable[2];

optionsTable[0] = {"bps", 'b', POPT_ARG_INT, &speed, 0,
  "signaling rate in bits-per-second", "BPS" };
optionsTable[1] = {"crnl", 'c', 0, 0, 'c',
  "expand cr characters to cr/lf sequences" };

C89
标准中,初始值设定项列表必须是编译时常量表达式,因此会出现警告。但是,在
C99中,它是受支持的

在C89中,您可以执行以下操作:

struct poptOption optionsTable[2];

optionsTable[0] = {"bps", 'b', POPT_ARG_INT, &speed, 0,
  "signaling rate in bits-per-second", "BPS" };
optionsTable[1] = {"crnl", 'c', 0, 0, 'c',
  "expand cr characters to cr/lf sequences" };

因为可变速度是在堆栈上分配的,所以在编译时它的地址是未知的。只有在main()执行时,才会知道它的地址。变量raw也是如此。作为任何一个好的编译器,编译器的错误消息并不完全指向出错的元素,这让您很难理解它在抱怨什么。

因为在堆栈上分配了可变速度,所以在编译时它的地址是未知的。只有在main()执行时,才会知道它的地址。变量raw也是如此。作为任何一个好的编译器,编译器的错误消息并不完全指向出错的元素,这让您很难理解它在抱怨什么。

因为在堆栈上分配了可变速度,所以在编译时它的地址是未知的。只有在main()执行时,才会知道它的地址。变量raw也是如此。作为任何一个好的编译器,编译器的错误消息并不完全指向出错的元素,这让您很难理解它在抱怨什么。

因为在堆栈上分配了可变速度,所以在编译时它的地址是未知的。只有在main()执行时,才会知道它的地址。变量raw也是如此。作为任何一个好的编译器,编译器的错误消息并不完全指向出错的元素,这让您很难理解它在抱怨什么