Сообщение Re: gcc 6: якобы "переменнные" размеры массивов в структуре от 25.05.2017 8:29
Изменено 25.05.2017 8:32 rg45
Re: gcc 6: якобы "переменнные" размеры массивов в структуре
Здравствуйте, Quarter-123, Вы писали:
Q1>
Q1>однако gcc 6.3.0 отказывается его компилировать с вот такой замечательной ошибочкой:
Q1>
Q1>соответственно вопрос к специалистам, можно ли как-то заставить gcc признать, что константа это константа и создать структуру?
У меня есть смутные подозрения, что дело не в константе. Проверь, пожалуйста, устраняется ли проблема в таком варианте:
Q1>
Q1>#include <stdio.h>
Q1>static const int SZ = 100;
Q1>// #define SZ 100
Q1>typedef struct Mdata {
Q1> int status;
Q1> char buf[SZ];
Q1>} Mdata;
Q1>int
Q1>main(void)
Q1>{
Q1> Mdata dt = {.status = 1, .buf = "123" };
Q1> printf("%d - %s\n", dt.status, dt.buf);
Q1>}
Q1>
Q1>однако gcc 6.3.0 отказывается его компилировать с вот такой замечательной ошибочкой:
Q1>
Q1>test_array.c:8:7: error: variably modified 'buf' at file scope
Q1> char buf[SZ];
Q1> ^~~
Q1>
Q1>соответственно вопрос к специалистам, можно ли как-то заставить gcc признать, что константа это константа и создать структуру?
У меня есть смутные подозрения, что дело не в константе. Проверь, пожалуйста, устраняется ли проблема в таком варианте:
Mdata dt = { 1, "123" };
Re: gcc 6: якобы "переменнные" размеры массивов в структуре
Здравствуйте, Quarter-123, Вы писали:
Q1>однако gcc 6.3.0 отказывается его компилировать с вот такой замечательной ошибочкой:
Q1>
Q1>соответственно вопрос к специалистам, можно ли как-то заставить gcc признать, что константа это константа и создать структуру?
У меня есть смутные подозрения, что дело не в константе. Проверь, пожалуйста, устраняется ли проблема в таком варианте:
Q1>однако gcc 6.3.0 отказывается его компилировать с вот такой замечательной ошибочкой:
Q1>
Q1>test_array.c:8:7: error: variably modified 'buf' at file scope
Q1> char buf[SZ];
Q1> ^~~
Q1>
Q1>соответственно вопрос к специалистам, можно ли как-то заставить gcc признать, что константа это константа и создать структуру?
У меня есть смутные подозрения, что дело не в константе. Проверь, пожалуйста, устраняется ли проблема в таком варианте:
Mdata dt = { 1, "123" };