- •2. Інтегроване середовище розробки Delphi: призначення і загальний опис середовища
- •3. Загальна організація програми в Delphi
- •4. Деякі довідкові відомості для роботи у середовищі Delphi
- •Цикл (программирование)
- •[Править]Определения
- •[Править]Виды циклов [править]Безусловные циклы
- •[Править]Цикл с предусловием
- •[Править]Цикл с постусловием
- •[Править]Цикл с выходом из середины
- •[Править]Цикл со счётчиком
- •[Править]Совместный цикл
- •[Править]Досрочный выход и пропуск итерации
- •[Править]Досрочный выход из цикла
- •[Править]Пропуск итерации
- •[Править]Необходимость
- •[Править]Вложенные циклы
- •[Править]Циклы с несколькими охраняемыми ветвями [править]Цикл Дейкстры
- •[Править]Цикл «паук»
- •[Править]Интересные факты
- •3.1 Інкапсуляція
- •3.2 Класи, компоненти і об'єкти
- •3.3 Спадкоємство
- •3.4 Розробка класів
- •3.4.1 Оголошення базового класу
- •3.4.2 Конструктори і деструкції
- •3.4.3 Оголошення похідних класів
- •3.5 Поліморфізм
- •3.5.1 Віртуальні функції
- •3.5.2 Дружні функції
- •3.6.1 Компоненти
- •3.6.1.1 Оголошення компонентних класів
- •3.6.1.2 Оголошення властивостей
- •3.6.1.3 Оголошення обробників подій
- •3.6.1.4 Оголошення автоматизованих властивостей і методів
- •3.6.1.5 Швидкий виклик функцій
- •3.6.1.6 Розширені типи даних Delphi
3.6.1.5 Швидкий виклик функцій
При оголошенні функцій, параметри яких передаються через процесорні регістри, використовується модифікатор _fastcall:
<повертаний тип> _fastcall <name>(<список параметрів>)
Це ключове слово визначає, що перші три параметри функції, що типізуються, з ім'ям name (зліва направо за списком) передаються не через стек, а через процесорні регістри AX, BX і DX. Регістри не використовуються, якщо значення параметра не уміщається в регістр, тобто при передачі через параметр чисел з плаваючою крапкою, структур і функцій.
Строго кажучи, швидкий виклик функцій не є прерогативою компілятора C++Builder. У попередньому розділі я вже звертав увагу читача на використання _fastcall у оголошеннях функцій обробки подій, які C++Builder генерує автоматично.
3.6.1.6 Розширені типи даних Delphi
C++Builder не дозволяє за допомогою відомого ключового слова typedef просто перевизначити деякі складні типи даних Об'єктного Паскаля. C++Builder реалізує такі розширені типи у вигляді звичайних або шаблонних класів (template class). Кожен такий клас містить всі необхідні конструктори, деструкції, властивості і об'єктні методи. Багато компонентів VCL використовують реалізацію розширених типів, а крім того, вони потрібні при розробці нових компонент на базі оригіналів з Delphi.
Нижче приводиться звідна таблиця вбудованих типів Delphi і відповідних ним типів C++Builder:
Delphi |
Довжина і значення |
C++builder |
Реалізація |
Shortint |
8-бітове ціле |
char |
typedef |
Smallint |
16-бітове ціле |
short |
typedef |
Longint |
32-бітове ціле |
long |
typedef |
Byte |
8-бітове ціле без знаку |
unsigned char |
typedef |
Word |
16-бітове ціле без знаку |
unsigned short |
typedef |
Integer |
32-бітове ціле |
int |
typedef |
Cardinal |
32-бітове ціле без знаку |
unsigned long |
typedef |
Boolean |
true/false |
bool |
typedef |
Bytebool |
true/false або 8-бітове ціле без знаку |
unsigned char |
typedef |
Wordbool |
true/false або 16-бітове ціле без знаку |
unsigned short |
typedef |
Longbool |
true/false або 32-бітове ціле без знаку |
unsigned long |
typedef |
Ansichar |
8-бітовий символ без знаку |
<="" p=""> Джерело: articles.org.ru Версія для друку | 0 Коментарі | Переглядів: 446 | Оцініть цю статтю Читайте також: Totally XMLed Forms Колекція фрагментів коди з реально працюючих програм на C++ Builder |
|