вторник, 8 мая 2012 г.
Препроцессор — Учимся программировать на языке MQL4
Do you like this story?
Препроцессор. Что такое препроцессор?
Препроцессор — это программа, обеспечивающая предварительную обработку кода для его подготовки к компиляции.Например, если Вы используете директиву #include
Например:
Код:
#define my_constant 100
Как Вы можете заметить в приведённом примере нет символа присваивания «=», а есть только пробел между именем константы (my_constant) и её значением (100).И также Вы должны были заметить, что строчка не закончилась точкой с звпятой — она закончилась символом перехода на новую строку.
Имена констант подчиняются тем же правилам, что и имена переменных (см. предыдущий пост), например нельзя начинать имя константы с цифры, и его длина не должна превышать 31 символ.
Значение константы может быть любым.
Препроцессор просто заменит Вашу константу на её значение везде, где повстречает её в коде. Да именно так —заменит одни символы (имя константы) на другие (её значение). И всё это произойдёт до компиляции, поэтому компилятор даже не заметит, что у Вас была какая-то константа.
Так что, Вашу константу можно применить, например так:
Код:
um = constant1 * 10;
2 — директива propertyВ MQL4 существуют заранее подготовленные переменные, называемые «Управляющие Компляцией», значения которых можно изменять для своей программы.
Для этого используется директива property — она говорит препроцессору, как настроить Ваш исполняемый файл *.ex4 .
Пример:
Код:
#property link "http://www.MYSITE.com"
#property copyright "FreeWare"
Список предопределённых переменных MQL4:
Использование директивы include равносильно копированию всего содержимого подключаемого файла к себе в программу, в то место, где стоит эта директива. Ctrl+C -> Ctrl+V — только за Вас это делает препроцессор.
Пример:
Код:
#include
Внимание: Есть два различных способа указания пути к файлу.
- Можно указать имя файла в угольных скобках
- Можно указать имя файла в кавычках «win32.h» — тогда препроцессор будет искать этот файл в текущей директории — в той, где будет лежать Ваш код. Если Ваш код и искомый файл лежат в разных местах, то можно указать полный путь к файлу — это тоже делается с помощью кавычек: «F:My_folderMy_include_filesHello.h» .
Директиву include можно вставить в любую часть кода, но обычно это делается в самом начале.
Подсказка: Хорошей практикой является размещение часто употребляемого Вами кода в отдельном файле, для его дальнейшего подключения в свои программы.
(просто совет).
4 — директива import
Это как директива include, но есть различия.
Директива import используется только для подключения исполняемых файлов MQL4 (*.ex4) и динамических библиотек (*.dll), чтобы импортировать их функции в Вашу программу.
Например:
Код:
#import "user32.dll"
int MessageBoxA(int hWnd,string lpText,string lpCaption,
int uType);
int MessageBoxExA(int hWnd,string lpText,string lpCaption,
int uType,int wLanguageId);
#import "melib.ex4"
#import "gdi32.dll"
int GetDC(int hWnd);
int ReleaseDC(int hWnd,int hDC);
#import
Когда Вы импортируете функции из файла *.ex4 нет необходимости их объявлять.Когда Вы импортируете функции из файла *.dll необходимо объявлять функции, чтобы они были готовы к использованию.
Пример объявления функции:
Код:
int MessageBoxA(int hWnd,string lpText,string lpCaption, int uType);
Импорт функций начинается со строчки #include «имя файла» (или в угольных скобках).Импорт йункций заканчивается строчкой #include .
Как говорит один знакомый информатик: «препроцессор помогает избежать работы обезьянкой». Этим всё сказано!!!

This post was written by: Franklin Manuel
Franklin Manuel is a professional blogger, web designer and front end web developer. Follow him on Twitter
Подписаться на:
Комментарии к сообщению (Atom)