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

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

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

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

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

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

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

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

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

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

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

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

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

Последний раз редактировалось Пепел Феникса; 14.07.2011 в 20:33.
Пепел Феникса вне форума
Старый 14.07.2011, 20: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.
Со мной можно встретиться на www.clipper.borda.ru

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

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

2Сыроежка
считаешь каждый обязан купить копию стандарта? или драфт читать?
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 вне форума
Старый 14.07.2011, 20:50   #18
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

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

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

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

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

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

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

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


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

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


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

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

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


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