Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы
Старый 14.07.2011, 19:14   #11
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 913
По умолчанию

Полегче на поворотах!
Говорить, что this - аргумент функции - вот это чушь.
Разумеется мной имелась ввиду платформа x86.
EUGY вне форума
Старый 14.07.2011, 19:18   #12
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Цитата:
Сообщение от EUGY Посмотреть сообщение
Полегче на поворотах!
Говорить, что this - аргумент функции - вот это чушь.
Разумеется мной имелась ввиду платформа x86.
Я вам еще раз повторяю: не несите всякую чушь! К языку программирования С++ ваши замечания никакого отношения не имеют! this - это неявный параметр для нестатических функций - членов класса. И как он будет передаваться в функцию, через стек, либо через регистр, либо еще каким-то образом, это все лишь вопрос генерации объектного кода для конкретной реализации С++ на конкретной платформе. Например, на платформе IBM maqinframe есть лишь регистры общего назначения, которые обозначаются как 0, 1. 2....15. Для удобства на ассемблере перед этими цифрами ставят буковку R, то есть R0, R1, ..., R15. Никаких там ECX вообще в природе не существует!
Сыроежка вне форума
Старый 14.07.2011, 19:21   #13
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Цитата:
Сообщение от EUGY Посмотреть сообщение
Полегче на поворотах!
Говорить, что this - аргумент функции - вот это чушь.
Разумеется мной имелась ввиду платформа x86.
И, вообще, вам рано давать комментарии на этом форуме, так как вы совершенно не знаете С++. Я уж не говорю о том. что вы в жизни не видели в глаза стандарта С++.
Сыроежка вне форума
Старый 14.07.2011, 19:22   #14
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Сыроежка, вынужден поддержать вас в этом холиваре...
Цитата:
this - это неявный параметр для нестатических функций - членов класса.
Это действительно так.

Цитата:
так как вы совершенно не знаете С++.
Однако, никто не давал вам права постоянно оскорблять участников форума и обвинять всех в незнании С++.

Последний раз редактировалось _-Re@l-_; 14.07.2011 в 19:25.
_-Re@l-_ вне форума
Старый 14.07.2011, 19:28   #15
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,002
По умолчанию

Сыроежка, а вы видимо совершенно не знаете соглашений о вызовах?
в thiscall-x86/x64(в студии по умолчанию именно он, в gcc не проверял) this действительно передается через ecx.
и не нужно ссылаться вечно на стандарт, в нем, в принципе, не может говорится про передачу параметров для всех-всех платформ.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 14.07.2011 в 19:33.
Пепел Феникса вне форума
Старый 14.07.2011, 19:45   #16
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Сыроежка, а вы видимо совершенно не знаете соглашений о вызовах?
в thiscall-x86/x64(в студии по умолчанию именно он, в gcc не проверял) this действительно передается через ecx.
и не нужно ссылаться вечно на стандарт, в нем, в принципе, не может говорится про передачу параметров для всех-всех платформ.
Сколько сражу безграмотных флудистов повылазило! Где вы в стандарте языка С++ видели ваши "соглашения о вызовах" И вы видели в стандарте хоть раз упоминание пресловутого регистра ECX?!

Вы - один из тех убогих, которые наивно думают, что в мире существуют только платформы Intel, и что все компиляторы генерируют один и тот же объектный код. Ваш регистр ECX никакого отношения к соглашениям о вызовах не имеет. Еще раз повторяю для тех идиотов, которые все равно попытвются влезь со соей безграмотностью: ECX никакого отношения к соглашению о вызовах не имеет!
Если вы имеете дело с платформой Intel, то в любом случае разработчик компилятора может при генерации объектного коджа при передачи указателя this использовать любой из регистров, за исключением регистров сегмента. Он может передавать этот указатель и в EAX, и в EBX, и в ECX, и в EDX, и через стек, и через спец3иальную локально выделенную память и т.д. И может даже передавать его через пару регистров, а не через один регистр!

Были бы вы хоть чуточку более образованными, то знали, что на Intel платформах между прочим существуют и 16-битовый код! А самое главное, что есть 64-битовые платформы, которые эмулируются на 32-битовых платформах, где указаиели занимают два машинных слова, а потому передаются с помощью пары регистров EAX:EDX.

Последний раз редактировалось Сыроежка; 14.07.2011 в 19:48.
Сыроежка вне форума
Старый 14.07.2011, 19:45   #17
pproger
C++ hater
СуперМодератор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,337
По умолчанию

2Пепел Феникса
то, что при thiscall-e this передается через регистр ecx, это свойство конкретного компилятора - vc++. и информация об этом в данном треде явно лишняя.

2Сыроежка
считаешь каждый обязан купить копию стандарта? или драфт читать?
pproger вне форума
Старый 14.07.2011, 19:50   #18
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
2Пепел Феникса
то, что при thiscall-e this передается через регистр ecx, это свойство конкретного компилятора - vc++. и информация об этом в данном треде явно лишняя.

2Сыроежка
считаешь каждый обязан купить копию стандарта? или драфт читать?
Считать себя С++ программистом можно лишь в одном случае, когда вы имеете и читаете С++ стандарт. В противном случае вы язык С++ заменяете своими более менее грамотными или безграмотными фантазиями!
Сыроежка вне форума
Старый 14.07.2011, 19:53   #19
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,002
По умолчанию

Цитата:
то, что при thiscall-e this передается через регистр, это свойство конкретного компилятора - vc++. и информация об этом в данном треде явно лишняя.
я об этом и сказал.
Цитата:
Вы - один из тех убогих, которые наивно думают
по себе судите?
писал под ARM7.

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

меня просто задело, что вы так ссылаетесь на стандарт как на скрижали заповедей от Господа.
про thiscall упомянул, что в студии он действительно передает this через ecx.
Цитата:
Говорить, что this - аргумент функции - вот это чушь.
это именно неявный аргумент, без разницы через регистр или нет(fastcall два параметра через регистры передает)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 14.07.2011 в 19:56.
Пепел Феникса вне форума
Старый 14.07.2011, 19:54   #20
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Считать себя С++ программистом можно лишь в одном случае, когда вы имеете и читаете С++ стандарт.
А, т.е. если я щас пойду и куплю стандарт С++, я автоматически становлюсь крутым С++ программистом? Прелестно...
Скажу вам по секрету, Сыроежка, я лично знаком с одним программистом, он(вернее, контора в которой он работает) использует С++ как основной язык. Так вот, он в глаза не видел стандарт С++, и, однако, прекрасно живёт без него.


P.S. Пепел Феникса, pproger, заметили может, docbrain по сравнению с Сыроежкой нервно курит в стороне...
Цитата:
Я вам еще раз повторяю: не несите всякую чушь!
Цитата:
И, вообще, вам рано давать комментарии на этом форуме, так как вы совершенно не знаете С++. Я уж не говорю о том. что вы в жизни не видели в глаза стандарта С++.
Цитата:
Сколько сражу безграмотных флудистов повылазило! Где вы в стандарте языка С++ видели ваши "соглашения о вызовах" И вы видели в стандарте хоть раз упоминание пресловутого регистра ECX?!
Цитата:
Вы - один из тех убогих, которые наивно думают
Цитата:
Еще раз повторяю для тех идиотов, которые все равно попытвются влезь со соей безграмотностью
Цитата:
Были бы вы хоть чуточку более образованными
Цитата:
Считать себя С++ программистом можно лишь в одном случае, когда вы имеете и читаете С++ стандарт. В противном случае вы язык С++ заменяете своими более менее грамотными или безграмотными фантазиями!
Цитата:
Что касается вашего примера, то он просто поразительно глуп!
И это только с этой темы да и то только с этой страницы...

Последний раз редактировалось _-Re@l-_; 14.07.2011 в 20:00.
_-Re@l-_ вне форума
Закрытая тема

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прокоментируйте строчку... Natashka Milashka Общие вопросы Delphi 4 20.05.2011 06:54
Прокоментируйте код Romario92 Общие вопросы C/C++ 13 30.10.2010 21:49
Обьясните что делают и означают пару строк в программном коде! FreeZeT Общие вопросы C/C++ 2 15.06.2010 02:20
Расшифровать подробно пару строк программы prikolist Общие вопросы C/C++ 4 25.03.2009 22:50
Необходимо расшифровать пару строк программы prikolist Общие вопросы C/C++ 12 19.03.2009 22:08


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840