Похоже, что при размере массива не может превышать размер
blockquote>unsigned int
.Это, кажется, имеет место в вашей конкретной реализации C [++] .
Я прав? Является ли это специфичным для gcc или является частью какого-либо стандарта C или C ++?
blockquote>Он не является характеристикой GCC в целом и не определяется ни стандартом C, ни C ++. Это характерная черта вашей конкретной реализации : версия GCC для вашей конкретной вычислительной платформы.
Стандарт C требует, чтобы выражение, обозначающее количество элементов массива, имело целочисленный тип, но оно не указывает конкретный тип. Мне кажется странным, что ваш GCC, кажется, утверждает, что он предоставляет вам массив с другим количеством элементов, чем вы указали. Я не думаю, что это соответствует стандарту, и я не думаю, что это имеет смысл как расширение. Я бы предпочел, чтобы вместо этого он отклонял код.
Смотря на код драгоценного камня демона, не похоже, что это имеет очевидную точку расширения с этой целью. Однако интересно, могли ли (в процессе daemonized) Вы захватить УНИЧТОЖИТЬ/НАЗВАТЬ сигнал, что демоны отправляют, когда 'остановка' происходит...?
trap("TERM") do
# execute your extra code here
end
Кроме того, Вы могли установить рычаг at_exit:-
at_exit do
# execute your extra code here
end
Rapleaf имел довольно хорошую статью об их блоге о расширении драгоценного камня Демонов, который мог бы быть тем, что Вы ищете.