Dmitry E. Oboukhov - debian-russian@lists.debian.org @ Mon, 8 Oct 2012
12:41:05 +0400:
DEO имеется некая структурка
DEO struct something {
DEO ...
DEO unsigned count;
DEO unsigned element[0];
DEO };
DEO то есть в поле count сказано сколько элементов будет после структурки.
Dmitry E. Oboukhov - debian-russian@lists.debian.org @ Mon, 8 Oct 2012
18:26:09 +0400:
Э.. Насколько я знаю С, уже тут нехорошая вещь.
То чем вы пользуетесь есть расширение gcc
http://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
и как всякое расширение лучше им без необходимости не
On 2012-10-08, Victor Wagner wrote:
Замечу, что в книге Кернигана и Ритчи Язык программирования Си
подобных фишек не описывалось. Виктор, Вы не подскажете, где можно
почитать о подобных трюках?
Есть очень хорошая книга Питера ван дер Линдена Expert C programming.
Там, насколько я помню,
On Tue, 9 Oct 2012, Oleksandr Gavenko wrote:
On 2012-10-08, Victor Wagner wrote:
Замечу, что в книге Кернигана и Ритчи Язык программирования Си
подобных фишек не описывалось. Виктор, Вы не подскажете, где можно
почитать о подобных трюках?
Есть очень хорошая книга Питера ван дер Линдена
On 2012-10-08, Dmitrii Kashin wrote:
Eugene Berdnikov b...@protva.ru writes:
P.S. Аксакалы, может вам лучше 2гугл по девелоперские рассылки, пока
здесь молодёжь дебиан мусолит? :)
Ну почему же. Я вот внимательно слежу за этим тредом и все читаю. Мне
очень интересно.
Вообще говоря, я
On 2012-10-09, yuri.nefe...@gmail.com wrote:
On Tue, 9 Oct 2012, Oleksandr Gavenko wrote:
по ключевым словам:
flexible array member
Речь шла не о flexible arrays, а о использовании structure/unit
и о том, что поля в них могут хранится разрежено. По стандарту.
И размер дыры между
имеется некая структурка
struct something {
...
unsigned count;
unsigned element[0];
};
то есть в поле count сказано сколько элементов будет после структурки.
ну и обращение к ним идет так:
for (i = 0; i s-count; i++) {
s-elements[i] = i;
}
теперь когда мы это хотим
On Mon, Oct 08, 2012 at 12:41:05PM +0400, Dmitry E. Oboukhov wrote:
хочется макрос
#define SOMETHING(name, size) ...
чтобы пользователь мог сказать
void foo(void) {
static SOMETHING(name, 5);
SOMETHING(name2, 10);
}
и получить саллоцированный на стадии компиляции (или в
On 2012.10.08 at 12:41:05 +0400, Dmitry E. Oboukhov wrote:
имеется некая структурка
struct something {
...
unsigned count;
unsigned element[0];
};
то есть в поле count сказано сколько элементов будет после структурки.
ну и обращение к ним идет так:
for (i = 0; i
В Mon, 8 Oct 2012 12:41:05 +0400
Dmitry E. Oboukhov un...@debian.org пишет:
имеется некая структурка
struct something {
...
unsigned count;
unsigned element[0];
};
то есть в поле count сказано сколько элементов будет после структурки.
ну и обращение к ним идет так:
Victor Wagner vi...@wagner.pp.ru writes:
On 2012.10.08 at 12:41:05 +0400, Dmitry E. Oboukhov wrote:
а вот если появилась необходимость саллоцировать такой объект
статически, как быть?
Завести union. С первым вариантом struct something и вторым - массивом
требуемой длины. (учитывая
On Mon, 8 Oct 2012, Dmitry E. Oboukhov wrote:
имеется некая структурка
struct something {
...
unsigned count;
unsigned element[0];
};
то есть в поле count сказано сколько элементов будет после структурки.
ну и обращение к ним идет так:
for (i = 0; i s-count; i++) {
On Mon, 8 Oct 2012, alexander wrote:
полиморфизм братюня)) полиморфизм.. лучше использовать class{:}} хех)
Полиморфизм на стадии компиляции?
Или до конца письмо не дочитали?
Ю.
С канечя это оченъ гут) но Сашога не понимает, при чем тут debian? O_o
nospam!
--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive:
В Mon, 8 Oct 2012 15:46:18 +0400 (MSK)
yuri.nefe...@gmail.com пишет:
On Mon, 8 Oct 2012, alexander wrote:
полиморфизм братюня)) полиморфизм.. лучше использовать class{:}}
хех)
Полиморфизм на стадии компиляции?
Или до конца письмо не дочитали?
Ю.
да Сашога воще не понимает
On Mon, Oct 08, 2012 at 03:42:40PM +0400, yuri.nefe...@gmail.com wrote:
Ho!
1) неименованные структуры - это опять же расширение
над ansiC. Если же именовать, то прийдется писать везде P.P
2) в вызове функции все равно прийдется писать P.P
Эта проблема легко и просто решается
В Mon, 8 Oct 2012 16:00:13 +0400
Eugene Berdnikov b...@protva.ru пишет:
On Mon, Oct 08, 2012 at 03:42:40PM +0400, yuri.nefe...@gmail.com
wrote:
Ho!
1) неименованные структуры - это опять же расширение
над ansiC. Если же именовать, то прийдется писать везде P.P
2) в вызове функции все
Eugene Berdnikov b...@protva.ru writes:
P.S. Аксакалы, может вам лучше 2гугл по девелоперские рассылки, пока
здесь молодёжь дебиан мусолит? :)
Ну почему же. Я вот внимательно слежу за этим тредом и все читаю. Мне
очень интересно.
Вообще говоря, я согласен, что это не место для подобных
В Mon, 08 Oct 2012 16:38:59 +0400
Dmitrii Kashin free...@gmail.com пишет:
Eugene Berdnikov b...@protva.ru writes:
P.S. Аксакалы, может вам лучше 2гугл по девелоперские рассылки,
пока здесь молодёжь дебиан мусолит? :)
Ну почему же. Я вот внимательно слежу за этим тредом и все читаю. Мне
On 2012.10.08 at 15:33:45 +0400, Dmitrii Kashin wrote:
Victor Wagner vi...@wagner.pp.ru writes:
On 2012.10.08 at 12:41:05 +0400, Dmitry E. Oboukhov wrote:
а вот если появилась необходимость саллоцировать такой объект
статически, как быть?
Завести union. С первым вариантом struct
On Mon, 8 Oct 2012, Eugene Berdnikov wrote:
On Mon, Oct 08, 2012 at 03:42:40PM +0400, yuri.nefe...@gmail.com wrote:
Ho!
1) неименованные структуры - это опять же расширение
над ansiC. Если же именовать, то прийдется писать везде P.P
2) в вызове функции все равно прийдется писать P.P
Эта
On Mon, Oct 08, 2012 at 05:36:40PM +0400, Victor Wagner wrote:
Кстати, тут пришло в голову еще одно решение - использовать alloca.
Это не совсем статическая структура, а явное выделение памяти в стеке.
Но тем не менее.
Человек просил портабельно, у alloca() с этим проблемы.
--
Eugene
Э.. Насколько я знаю С, уже тут нехорошая вещь.
То чем вы пользуетесь есть расширение gcc
http://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
и как всякое расширение лучше им без необходимости не пользоваться.
ну бОльшая часть линукс кернела в этом стиле написана, так что имхо
пользоваться
Вообще говоря вопрос к Диме Обухову: какая цель
в возможности задать размер массива во время компиляции?
Меньше цпу? Сомнительно. Без профайлера не поверю.
Экономия памяти? Ну совсем копейки.
На большее фантазии у меня не хватает.
вообще это объекты которые правда аллоцируются динамически.
On Mon, Oct 08, 2012 at 06:26:09PM +0400, Dmitry E. Oboukhov wrote:
Э.. Насколько я знаю С, уже тут нехорошая вещь.
То чем вы пользуетесь есть расширение gcc
http://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
и как всякое расширение лучше им без необходимости не пользоваться.
ну бОльшая
16 union
17 {
18struct base body;
19int str[sizeof(struct base)+c];
20 } object;
тут может быть просто struct и тогда не надо будет sizeof(struct base)
вопрос как это в макрос засунть, чтобы потом функции которые хотят
указатель на struct base с этим работать?
а вот если появилась необходимость саллоцировать такой объект
статически, как быть?
Завести union. С первым вариантом struct something и вторым - массивом
требуемой длины. (учитывая sizeof(struct something).
Элегантность этого решения настолько впечатлила меня, что я даже
озаботился
On Mon, 8 Oct 2012, Andrey Rahmatullin wrote:
On Mon, Oct 08, 2012 at 06:26:09PM +0400, Dmitry E. Oboukhov wrote:
Э.. Насколько я знаю С, уже тут нехорошая вещь.
То чем вы пользуетесь есть расширение gcc
http://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
и как всякое расширение лучше им без
Victor Wagner vi...@wagner.pp.ru writes:
Замечу, что в книге Кернигана и Ритчи Язык программирования Си
подобных фишек не описывалось. Виктор, Вы не подскажете, где можно
почитать о подобных трюках?
Есть очень хорошая книга Питера ван дер Линдена Expert C programming.
Там, насколько я
alexander toyman...@gmail.com writes:
Dmitrii Kashin free...@gmail.com пишет:
[…]
Вообще говоря, я согласен, что это не место для подобных дискуссий,
но Вы вот можете мне подсказать адреса рассылок, в которых, как
здесь, можно с грамотными людьми обсудить подобные вопросы?
On 2012.10.08 at 19:55:59 +0400, Dmitrii Kashin wrote:
Victor Wagner vi...@wagner.pp.ru writes:
Замечу, что в книге Кернигана и Ритчи Язык программирования Си
подобных фишек не описывалось. Виктор, Вы не подскажете, где можно
почитать о подобных трюках?
Есть очень хорошая книга
08.10.2012 15:33, Dmitrii Kashin пишет:
--- trick.c ---
1
2#include stdio.h
3
4struct base
5{
6 int count;
7 int str[0];
8};
9
10int main(int argc, char** argv)
11{
12 int c;
13 printf(Input
On Mon, 8 Oct 2012, Dmitry E. Oboukhov wrote:
#define SOMETING(__name, __size)\
struct {\
struct something s; \
unsigned items[__size]; \
} __attribute__((packed)) __name = {\
.s = {
33 matches
Mail list logo