crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Оригинальный способ инициализации структуры
Andrew Selivanov
  опции профиля:
сообщение 12.10.2007, 13:07
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

Спасибо сказали: 15 раз(а)




Репутация:   6  


Оригинальный способ инициализации структуры (заимствовано из примера к boost.asio)
struct mapping
{
  const char* extension;
  const char* mime_type;
} mappings[] =
{
  { "gif", "image/gif" },
  { "htm", "text/html" },
  { "html", "text/html" },
  { "jpg", "image/jpeg" },
  { "png", "image/png" },
  { "swf", "application/x-shockwave-flash" },
  { 0, 0 } // Marks end of list.
};
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
LuckLess
  опции профиля:
сообщение 17.10.2007, 10:35
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 31
Регистрация: 10.10.2007
Пользователь №: 8

Спасибо сказали: 0 раз(а)




Репутация:   0  


{ 0, 0 } // Marks end of list.
Зачем? Конец можно узнать через sizeof
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 17.10.2007, 11:24
Сообщение #3


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


ну как я понял Andrew сделал просто Copy-Pаste из asio и не более того, но способ и правда оригинален... :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrew Selivanov
  опции профиля:
сообщение 17.10.2007, 11:58
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

Спасибо сказали: 15 раз(а)




Репутация:   6  


Цитата(LuckLess @ 17.10.2007, 11:35) *
{ 0, 0 } // Marks end of list.
Зачем? Конец можно узнать через sizeof


Можно, а в чем преимущество? Кроме того этот метод не отлетит в рантайме :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
LuckLess
  опции профиля:
сообщение 17.10.2007, 13:56
Сообщение #5


Студент
*

Группа: Новичок
Сообщений: 31
Регистрация: 10.10.2007
Пользователь №: 8

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 17.10.2007, 12:24) *
ну как я понял Andrew сделал просто Copy-Pаste из asio и не более того, но способ и правда оригинален... :)

ну.. пруемущества
1. не будет лишней структуры в массиве
2. если структура не будет .. мм.. такой.. что ее нельзя однозначно представить в виде логического "нуля" - твой стпособ не пройдет.

Цитата
Кроме того этот метод не отлетит в рантайме

не понял.. в смысле?


пс. массивы структур - зло :p (а совмещение обпределения структуры с объявлением и инициализацией структуры - двойное зло :p)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 17.10.2007, 15:00
Сообщение #6


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(LuckLess @ 17.10.2007, 13:56) *
пс. массивы структур - зло :p (а совмещение обпределения структуры с объявлением и инициализацией структуры - двойное зло :p)
Почему же зло, тут некоторые считают, что указатели это зло... :rolleyes:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrew Selivanov
  опции профиля:
сообщение 18.10.2007, 12:53
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

Спасибо сказали: 15 раз(а)




Репутация:   6  


Цитата(LuckLess @ 17.10.2007, 14:56) *
Цитата(ViGOur @ 17.10.2007, 12:24) *
ну как я понял Andrew сделал просто Copy-Pаste из asio и не более того, но способ и правда оригинален... :)

ну.. пруемущества
1. не будет лишней структуры в массиве
2. если структура не будет .. мм.. такой.. что ее нельзя однозначно представить в виде логического "нуля" - твой стпособ не пройдет.

Цитата
Кроме того этот метод не отлетит в рантайме

не понял.. в смысле?


пс. массивы структур - зло :p (а совмещение обпределения структуры с объявлением и инициализацией структуры - двойное зло :p)


Короче для такого применения как в примере выше оно вполне подходит. Под рантаймом имелось ввиду выделить память и инициализировать после запуска. Да, можно сделать по всякому. А еще можно сказать, что если оставить с нулевой структурой - не будет лишней операции деления :)

Предлагаю постить свои методы способы и прочее для решения частных задач... вроде той что в этой теме :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 16.9.2008, 1:41
Сообщение #8





Гости








    


Интересно, а кто-нибудь вообще заморачивался тем, чтобы почитать Мейерса, Эккеля, Страуструпа наконец?
А то полно каких-то "оригинальных методов", а чего оригинального в инициализации агрегатов таким способом - хз! В каждом справочнике по языку это есть, не говоря уж об учебниках и стандарте...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 16.9.2008, 8:11
Сообщение #9


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(Гость_Гость_* @ 16.9.2008, 2:41) *
а чего оригинального в инициализации агрегатов таким способом - хз! В каждом справочнике по языку это есть, не говоря уж об учебниках и стандарте...
Когда читаешь книгу, то что-то запомнил, что-то забыл. Того же страуструпа я уже раза 3 перечитал, и каждый раз нахожу что-то новое для себя. :)
Хотя на память не жалуюсь!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrew Selivanov
  опции профиля:
сообщение 18.9.2008, 13:12
Сообщение #10


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

Спасибо сказали: 15 раз(а)




Репутация:   6  


Цитата(Гость @ 16.9.2008, 2:41) *
Интересно, а кто-нибудь вообще заморачивался тем, чтобы почитать Мейерса, Эккеля, Страуструпа наконец?
А то полно каких-то "оригинальных методов", а чего оригинального в инициализации агрегатов таким способом - хз! В каждом справочнике по языку это есть, не говоря уж об учебниках и стандарте...

Художника обидеть может каждый :rolleyes:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 16.4.2024, 17:14