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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2011, 23:24   #1
llqs
 
Регистрация: 24.04.2011
Сообщений: 6
По умолчанию Заголовок WinMain и буква f после значений. Вопросы.

В ходе изучения С++ появилась пара вопросов - по сути они пустяковые, но разобраться всетаки хочется)
1) Имеем функцию:

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR pCmdLine, int nCmdShow);

int - тип возвращаемого значения
WinMain - название функции
(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR pCmdLine, int nCmdShow); - возвращаемые значения
WINAPI - а что это такое? В некоторых примерах видел где используют вместо WINAPI - __stdcall (думаю что то то связанное с работой с DLL где функция хранится, но так и не нашел информации). Что это свойство/значение означает и для чего применяется?

2) В некоторых функциях DirectX где тип значения - float - после значения ставится буква "f". К примеру:
PHP код:
Vertex(-1.0f0.0f2.0f); 
Так зачем эта буковка "f" нужна?
llqs вне форума Ответить с цитированием
Старый 26.05.2011, 23:40   #2
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Цитата:
Сообщение от llqs Посмотреть сообщение
2) В некоторых функциях DirectX где тип значения - float - после значения ставится буква "f". К примеру:
PHP код:
Vertex(-1.0f0.0f2.0f); 
Так зачем эта буковка "f" нужна?
Приведу пример из opengl:
Код:
//Эти две функции практически идентичны.
glVertex2d(0,0);             //Эта функция используется для построения точки без указания координаты Z(например в двумерном пространстве).
glVertex3f(0.0f,0.0f,0.0f); //А эта для указания точки в трехмерном пространстве с учетом координаты Z.
glVertex3f(0.0,0.0,0.0);//Эта функция полностью идентична с верхней.
Исходя из этого вы можете предположить, что буковка f нужна для указания типа используемых данных и никакой особо важно роли не играет.
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Старый 26.05.2011, 23:43   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
WINAPI - а что это такое? В некоторых примерах видел где используют вместо WINAPI - __stdcall (думаю что то то связанное с работой с DLL где функция хранится, но так и не нашел информации). Что это свойство/значение означает и для чего применяется?
#define WINAPI __stdcall
это соглашение о вызове, и это к длл не имеет отношения.
Цитата:
Так зачем эта буковка "f" нужна?
чтоб указать компилятору что константа имеет тип float(по умолчанию double)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.05.2011, 23:57   #4
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Да был немного неправ, извиняйте)
В нагрузку к сказанному:
float занимает 4 байта, double занимает 8 байт.
double - это float с лучшей точностью,в большинстве случаев лучше использовать double
Разница в скорости обработки double и float очень невелика, потому рациональней использовать double. Это действует для тех кто знает только FPU, потому что FPU работает с full precision (10 байт) поэтому разницы никакой нет.А если продвинуться в сторону SIMD, флоаты сработают вдвое быстрее, как минимум.
P.S.:Взято с темы http://programmersforum.ru/showthread.php?t=91341. =)
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Старый 27.05.2011, 09:03   #5
llqs
 
Регистрация: 24.04.2011
Сообщений: 6
По умолчанию

Огромное спасибо за помощь, разобрался)
llqs вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
А вы знаете, что пользователи могут в течении часа после создания темы редактировать заголовок темы? Alar О форуме и сайтах клуба 4 27.04.2010 15:20
перезапись значений в файле.txt после сравнения SarahConner Общие вопросы Delphi 0 21.03.2009 00:19
Буква - не буква? nec117 Общие вопросы C/C++ 4 06.11.2008 17:27
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45