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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2011, 17:48   #21
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
__cdecl только там не нужен
у меня есть привычка указывать соглашение о вызове всегда когда мне это надо.(то есть когда мне нужно явно определенное, даже если оно стандартно)
в данном случае было указано для того чтобы показать, что соглашение о вызове пишется там.
Цитата:
так как нет более 1 параметра!
если уже хоть один параметр то разница есть.
да и cdecl немного сложнее.
тут же нет ни одного параметра.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.09.2011, 18:19   #22
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

По поводу переменных/структур в *.h файлах. Вместо extern можно использовать #pragma once, что будет означать, что данных файл будет подключен только один раз.
TwiX вне форума Ответить с цитированием
Старый 09.09.2011, 18:24   #23
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

неа, не вариант.
это действует только в пределах одного модуля.
при компиляции двух модулей, у каждого из них выйдет переменная.
то есть:
Код:
module1->edata->int x;
module2->edata->int x;
а надо то так:
Код:
module1->edata->int x;
module2->idata->int x;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.09.2011, 07:14   #24
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

С одним параметром нет разницы практический, что __cdecl хоть __stdcall (Единствено кто чистит за собой стек), юзай IDA и смотри как все устроено!!!
VintProg вне форума Ответить с цитированием
Старый 11.09.2011, 10:16   #25
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

давай-ка учить не будешь?
Цитата:
что __cdecl хоть __stdcall
нет разницы? разница в том кто чистит стек, и это большая разница.
хоть при одном параметре уже естиь разница, про разницу между stdcall и cdecl я сказал, у fastcall первые два параметра уйдут в регистры, совсем, конечно, нет разницы.
Цитата:
юзай IDA и смотри как все устроено!!!
занимаюсь, по мере времени свободного, компилятором.
раньше писал на асме, да и на Делфи баловался динамикой(интерпритатор был не большой, но зараза утерян)

именно от всего этого у меня привычка всегда явно указывать соглашение о вызове(если мне не все равно какое)
да и лучше указать лишнее(там где нет параметров), чем не поставить где важно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.09.2011, 12:38   #26
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

__declspec(naked) - в дельфи нету, кстати для чего он нужен подробно бы знать...
VintProg вне форума Ответить с цитированием
Старый 11.09.2011, 12:46   #27
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
кстати для чего он нужен подробно бы знать...
для функции компилятор не генерирует своего кода(создание стекового фрейма), такая функция поидее может содержать только асм код.
Цитата:
в дельфи нету
есть аналог.
Код:
procedure ABC;
asm

end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не понятная фигн TotKtoNado Общие вопросы Delphi 0 01.07.2011 17:25
Работа с реестром(не понятная ошибка от rad studio 2010 xaero93 Помощь студентам 2 26.01.2011 18:57
Не понятная задача mitax Microsoft Office Excel 2 17.12.2010 17:19
не понятная ошибка в цикле case designer999 Общие вопросы Delphi 11 27.03.2010 17:40
не понятная ошибка ManInBlack Помощь студентам 2 20.10.2008 23:33