LINUX.ORG.RU

История изменений

Исправление hobbit, (текущая версия) :

Я скомпилировал последний пример из предыдущей темы. Тот самый, в котором должны были исчезнуть предупреждения.

Предупреждения о структурах действительно исчезли. Зато появились новые (а может, они и были, за той стеной вполне могли потеряться):

main.c: В функции «main»:
main.c:31:78: предупреждение: overflow in conversion from «int» to «char» changes value from «208» to «-48» [-Woverflow]
 char metaprog_instance_0complex_array_array_pointer_5555219860667822081[] = {208,178,209,150,208,186,208,189,208,190,0};
                                                                              ^~~
main.c:31:82: предупреждение: overflow in conversion from «int» to «char» changes value from «178» to «-78» [-Woverflow]
 char metaprog_instance_0complex_array_array_pointer_5555219860667822081[] = {208,178,209,150,208,186,208,189,208,190,0};
                                                                                  ^~~

И далее. Это следствие того, что ты беззнаковые значения больше 127 преобразуешь в знаковые, и компилятор это считает переполнением. Идею представлять строки нечитаемым набором циферок я вообще считаю сомнительной, но это вопрос отдельный.

При запуске программы на экране появляется пустое «вiкно», которое через несколько секунд само исчезает. Так и должно быть?

Выхлоп валгринда на сей раз чистый.

Среда: GCC 8.3.1, Fedora 29, Nuklear вчерашний из гита.

Исправление hobbit, :

Я скомпилировал последний пример из предыдущей темы. Тот самый, в котором должны были исчезнуть предупреждения.

Предупреждения о структурах действительно исчезли. Зато появились новые (а может, они и были, за той стеной вполне могли потеряться):

main.c: В функции «main»:
main.c:31:78: предупреждение: overflow in conversion from «int» to «char» changes value from «208» to «-48» [-Woverflow]
 char metaprog_instance_0complex_array_array_pointer_5555219860667822081[] = {208,178,209,150,208,186,208,189,208,190,0};
                                                                              ^~~
main.c:31:82: предупреждение: overflow in conversion from «int» to «char» changes value from «178» to «-78» [-Woverflow]
 char metaprog_instance_0complex_array_array_pointer_5555219860667822081[] = {208,178,209,150,208,186,208,189,208,190,0};
                                                                                  ^~~

И далее. Это следствие того, что ты беззнаковые значения больше 127 преобразуешь в знаковые, и компилятор это считает переполнением. Идею представлять строки нечитаемым набором циферок я вообще считаю сомнительной, но это вопрос отдельный.

При запуске программы на экране появляется пустое «вiкно», которое через несколько секунд само исчезает. Так и должно быть?

Выхлоп валгринда на сей раз чистый.

GCC 8.3.1.

Исходная версия hobbit, :

О предупреждениях

Я скомпилировал последний пример из предыдущей темы. Тот самый, в котором должны были исчезнуть предупреждения.

Предупреждения о структурах действительно исчезли. Зато появились новые (а может, они и были, за той стеной вполне могли потеряться):

main.c: В функции «main»:
main.c:31:78: предупреждение: overflow in conversion from «int» to «char» changes value from «208» to «-48» [-Woverflow]
 char metaprog_instance_0complex_array_array_pointer_5555219860667822081[] = {208,178,209,150,208,186,208,189,208,190,0};
                                                                              ^~~
main.c:31:82: предупреждение: overflow in conversion from «int» to «char» changes value from «178» to «-78» [-Woverflow]
 char metaprog_instance_0complex_array_array_pointer_5555219860667822081[] = {208,178,209,150,208,186,208,189,208,190,0};
                                                                                  ^~~

И далее. Это следствие того, что ты беззнаковые значения больше 127 преобразуешь в знаковые, и компилятор это считает переполнением. Идею представлять строки нечитаемым набором циферок я вообще считаю сомнительной, но это вопрос отдельный.

При запуске программы на экране появляется пустое «вiкно», которое через несколько секунд само исчезает. Так и должно быть?

Выхлоп валгринда на сей раз чистый.