Форум программистов, компьютерный форум CyberForum.ru

fastcall & inline - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ MPLAB http://www.cyberforum.ru/cpp-beginners/thread816404.html
Ребята кто нибудь работает в программе MPLAB на базе микроконтроллера PIC 16F84????
C++ вывод матрицы. шаблонов помогите пожалуйста разобратся с программой. на данном этапе нужно вывести матрицу на экран при помощи шаблонов. ошибок не выдает, но не компилирует и пишет что что-то не так с выводом матрицы .... "operator <<" помогите разобатся, что там не так.... #include<conio.h> #include<stdio.h> #include<iostream> #include<iomanip> #include<math.h> http://www.cyberforum.ru/cpp-beginners/thread816402.html
Вводятся два числа. Вычислить их разницу и вывести результат в виде, например 20-10 = 10 C++
Вводятся два числа. Вычислить их разницу и вывести результат в виде, например 20-10 = 10
C++ Доделать программу для генерации и проверки серийного номера жесткого диска
Программа должна содержать: • функция char* GetComputerData(), которая возвращает серийный номер жесткого диска • функцію char* CalculateSerialNumber(char* comp_data, char* user_name), которая высчитывает серийный номер на основе уникального значения и имени пользователя. • Алгоритм формирования серийного номера должен базироваться на операции XOR (длинна серийного номера должна быть 8...
C++ Вычисление значений функции http://www.cyberforum.ru/cpp-beginners/thread816394.html
Составить программу для вычисления значений заданной функции, используя исходные данные:
C++ Определить стоимость подписки Цена подписки на газету «Пресс-Курьер» на год определяется следующим образом: льготная подписка (при предъявлении квитанции за предыдущий год) на весь год–15 грн., подписка для тех, кто впервые станет постоянным читателем, – 18 грн., подписка для пенсионеров – 12 грн., подписка обыкновенная – 24 грн. Определить стоимость подписки с учётом приведённых условий. подробнее

Показать сообщение отдельно
Nagdiel
114 / 114 / 3
Регистрация: 23.12.2012
Сообщений: 195
23.03.2013, 20:10
1.
Цитата Сообщение от anubis1768 Посмотреть сообщение
fastcall нужно использовать когда много аргументов?
для предметного обсуждения хотелось бы узнать, сколько в штуках по Вашему это "много"? Для того чтобы выяснить, сколько параметров можно передать через регистры, следует смотреть документацию для конкретного компилятора. Ну а если лень изучать документацию, то хотя бы на википедии посмотреть:
Кликните здесь для просмотра всего текста
В компиляторе Borland, для соглашения __fastcall, называемого также register,[1] параметры передаются слева направо в eax, edx, ecx и, если параметров больше трёх, в стеке, также слева направо. Указатель стека на исходное значение возвращает вызываемая подпрограмма.

Соглашение __fastcall Microsoft, также называемое __msfastcall, в 32-хразрядной версии компилятора Microsoft,[2] а также компилятора GCC,[3] определяет передачу первых двух параметров слева направо в ecx и edx, а остальные параметры передаются справа налево в стеке. Очистку стека производит вызываемая подпрограмма.

Для x64 целей компилятор Microsoft VisualStudio 2010 CL принимает данное соглашение по умолчанию, остальные игнорируются, даже если заданы явно. Передача параметров в данном случае происходит при помощи 4х 64х разрядных регистра: rcx, rdx, r8, r9. В случае если параметров больше — остальные передаются через стек.


2. Не следует сводить оптимизацию программы исключительно к оптимизации каждой строчки программного кода. Иногда достаточно улучшить работу одного или "нескольких узких мест", которые существенно влияют на производительность.

3. Современные компиляторы проводят большую работу по оптимизации программного кода, однако они не идеальны, так что у программиста должна быть возможность явно указать те или иные приемы оптимизации, или же наоборот запретить их.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru