The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"linux/list.h"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"linux/list.h"  
Сообщение от rr on 01-Май-06, 08:25 
Приветствую.

В include/linux/list.h сорцов ядра встретил такую конструкцию:

#define LIST_HEAD_INIT(name) { &(name), &(name) }

Полагаю, то что в { .. } это расширение gcc? По какому слову искать в info gcc?

Спасибо.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

  • linux/list.h, DeadMustdie, 12:02 , 01-Май-06, (1)  
    • linux/list.h, DeadMustdie, 12:03 , 01-Май-06, (2)  
    • linux/list.h, rr, 09:18 , 02-Май-06, (4)  
  • linux/list.h, Skiff, 04:12 , 02-Май-06, (3)  

Сообщения по теме [Сортировка по времени, UBB]


1. "linux/list.h"  
Сообщение от DeadMustdie email(??) on 01-Май-06, 12:02 
>В include/linux/list.h сорцов ядра встретил такую конструкцию:
>
>#define LIST_HEAD_INIT(name) { &(name), &(name) }
>
>Полагаю, то что в { .. } это расширение gcc? По какому
>слову искать в info gcc?

Нормальная сишная конструкция. Никакое не расширение. На место макроса
будет подставлено дословно '{ &(аргумент), &(аргумент) }'.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "linux/list.h"  
Сообщение от DeadMustdie email(??) on 01-Май-06, 12:03 
>Нормальная сишная конструкция. Никакое не расширение. На место макроса
>будет подставлено дословно '{ &(аргумент), &(аргумент) }'.

Хочу добавить порцию ворчания. Дети, изучение исходников ядра - далеко
не лучший способ изучения синтаксиса языка. Честное слово.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "linux/list.h"  
Сообщение от rr on 02-Май-06, 09:18 
>Нормальная сишная конструкция. Никакое не расширение. На место макроса
>будет подставлено дословно '{ &(аргумент), &(аргумент) }'.
все верно :)
поторопился с вопросом
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "linux/list.h"  
Сообщение от Skiff (??) on 02-Май-06, 04:12 
> Полагаю, то что в { .. } это расширение gcc?

Макрос LIST_HEAD_INIT(name) используется для инициализации структуры list_head,
объявленной в linux/list.h:

struct list_head {
        struct list_head *next, *prev;
};

Конструкция

struct list_head name = LIST_HEAD_INIT(name);

означает

struct list_head name = {&name, &name};

то есть

struct list_head name;
name.prev = &name;
name.next = &name;

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру