- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
static struct frame rx_frame = {
.data = rx_buffer,
.sz = sizeof(rx_buffer)
};
...
где-то в том же модуле:
struct frame *task_communication_receive_frame(void)
{
memset(rx_frame, 0, sizeof(rx_frame));
...
}
gost 25.05.2016 16:52 # 0
Поясните плз за синтаксис - что это такое?
Dummy00001 25.05.2016 17:04 # +2
inkanus-gray 25.05.2016 17:55 # 0
To initialize a range of elements to the same value, write ‘[first ... last] = value’. This is a GNU extension. For example, Круто! Диапазоны почти паскалевского синтаксиса. Ещё бы в свитч-кейс их завезли...
А вот это выглядит ужасно:
А ведь устаревший синтаксис похож на JSON.
Dummy00001 25.05.2016 18:03 # 0
мне он больше нравился. где-то плавало весьма расплывчатое объяснение почему ISO решил в конце синтакс с точкой стандартизировать.
roman-kashitsyn 25.05.2016 18:09 # +5
inkanus-gray 25.05.2016 21:08 # +5
guestinho 25.05.2016 21:13 # +3
inkanus-gray 25.05.2016 21:55 # 0
Bobik 25.05.2016 21:54 # +3
В GCC завезли: http://ideone.com/oql1jt
MiD 25.05.2016 23:37 # 0
Bobik 26.05.2016 11:40 # 0
guesto 25.05.2016 23:39 # 0
а как же ANSI C?
MiD 25.05.2016 23:46 # 0
inkanus-gray 25.05.2016 23:50 # 0
guesto 25.05.2016 23:51 # +4
guesto 25.05.2016 23:51 # 0
давно уже можно делать VLA, декларить переменные не сверху блока, давно уже есть wchar итд
dxd 26.05.2016 07:04 # +6
guesto 26.05.2016 12:18 # 0
dxd 26.05.2016 12:21 # +4
guesto 26.05.2016 21:23 # +1
имхо, если можно обойтись без динамической кучи, то лучше без нее обойтись
другой вопрос что в стек можно случайно захуячить 20 гигабайт и сделать плохо
bormand 26.05.2016 21:33 # 0
Никогда стек не рвался от аллоки, вла или просто большого массива?
guesto 26.05.2016 21:36 # +1
потому и было сказано: "захуячить 20 гигабайт"
Но если я _точно_ знаю что там лежит массив из десяти интов, то нафиг мне беспокоить менеджера куч?
С другой стороны я могу и статически определить массив на 10 интов без VLA
bormand 26.05.2016 21:38 # +1
guesto 26.05.2016 21:41 # +2
выходит, динамическое управление стеком вообще не нужно?
kurwa 26.05.2016 22:03 # +1
MiD 26.05.2016 22:23 # 0
В этом случае, я так понимаю, остаётся на совести программиста, сколько будет сожрано памяти на стеке, т.е. тоже говно и так делать нельзя?
bormand 27.05.2016 07:15 # 0
dxd 27.05.2016 08:54 # 0
Хуже можно было сделать, только используя int вместо size_t. VLA отрицательного размера тоже можно сделать.
1024-- 27.05.2016 10:44 # 0
***! *****!
А что в этом случае будет? Конец стека подвинется обратно и вызов вложенных функций затрёт локальные переменные? Размер кастанётся к беззнаковому числу?
dxd 27.05.2016 12:17 # +1
Справедливости ради замечу, что если компилятор может доказать, что размер отрицательный, он выдаёт ошибку.
Antervis 30.05.2016 20:17 # 0
guestinho 25.05.2016 18:37 # 0
MiD 25.05.2016 18:49 # +4
guestinho 25.05.2016 18:57 # +6
kurwa 25.05.2016 22:35 # +6