Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2017, 08:57   #21
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
сказали массив, не уточнили какой, чар массив самый банальный и мне привычный его и взял бы.
не нужно никогда себе жизнь усложнять )
Ага. Спрашивать про уточнения — для слабаков
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.04.2017, 13:14   #22
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ага. Спрашивать про уточнения — для слабаков
какой тз, такой и результат )
Alar вне форума Ответить с цитированием
Старый 21.04.2017, 13:28   #23
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
это уже другое задание

а если при наличии интернета ты не смог нагуглить решение первого (о чем уже стоит задуматься), то вот:
Код:
int arr[123];
printf("%td\n", *(&arr + 1) - arr);
С одной стороны данное задание и решение показывает, что человек чего-то там знает и мозги работают (я честно говоря до такого не додумался), с другой - наркомания же. Попадётся какой-нибудь деятель, который везде в коде такие фичи пользовать будет. Хорошо еще если эти фичи будут соответствовать стандарту языка, а не эксплуатировать особенности конкретного компилятора.
pu4koff вне форума Ответить с цитированием
Старый 23.04.2017, 09:07   #24
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,618
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
вот тебе вопрос от меня (задаем своим джунам): как узнать размер static массива (т.е кол-во элементов), не используя оператор sizeof и не используя шаблоны.
Спасибо, шикарный вопрос. Я подумал
rrrFer вне форума Ответить с цитированием
Старый 25.04.2017, 16:18   #25
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

ну тогда давайте продолжим

что делает данный код? (да, выше было, но народ то ли не заметил, то ли не знает)
Код:
#define container_of(ptr, type, member) ({			\
	const typeof( ((type *)0)->member ) *__mptr = (ptr);	\
	(type *)( (char *)__mptr - offsetof(type,member) );})
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 25.04.2017, 16:37   #26
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
что делает данный код
Ломает сборку под MSVC из-за нестандартного typeof?
Кроме того, я не уверен, что с {} внутри () это все будет работать в качестве тела if/for/while...

Последний раз редактировалось waleri; 25.04.2017 в 16:39.
waleri вне форума Ответить с цитированием
Старый 25.04.2017, 17:13   #27
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
ну тогда давайте продолжим

что делает данный код? (да, выше было, но народ то ли не заметил, то ли не знает)
Код:
#define container_of(ptr, type, member) ({			\
	const typeof( ((type *)0)->member ) *__mptr = (ptr);	\
	(type *)( (char *)__mptr - offsetof(type,member) );})
Я так понял, что получаем указатель на объект, у которого член по имени member имеет адрес ptr. Типа указатель на контейнер мембера.
Как по мне: дичь дикая, я бы за такое по рукам бил, хотя для плюсовиков может это и норма, такую наркоманию писать.
pu4koff вне форума Ответить с цитированием
Старый 25.04.2017, 17:43   #28
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Ломает сборку под MSVC из-за нестандартного typeof?
Кроме того, я не уверен, что с {} внутри () это все будет работать в качестве тела if/for/while...
да, тут присутствуют gcc extensions. тем не менее, имя typeof говорящее, несложно догадаться

Цитата:
Я так понял, что получаем указатель на объект, у которого член по имени member имеет адрес ptr. Типа указатель на контейнер мембера.
да, именно так

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

http://lxr.free-electrons.com/source.../kernel.h#L849
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 25.04.2017 в 17:57.
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск