求个妹子 发表于 2022-7-13 13:47:45

MT5,外汇,人工神经网络,编程,EA,简洁之1.3「预处理的定义」

1.#define//常量声明与宏定义,#undef//指令取消宏替换声明
常量声明:
#define ABC 100//声明
#define TWO 2//声明
#define INCOMP ABC+TWO //声明
Print(ABC); //输出 100
Print(INCOMP); //输出 102
宏定义:
// a和b两个参数的示例
#define A 2
#define B 5
#define MUL(a, b) a*b


double c=MUL(A,B); =》c=a*b;=》c=2*5;
Print("c=",c);
// 输出
// c=10


取消宏替换声明:
#define ABC 100//声明
#undef ABC //取消声明
#define ABC 200//声明
Print(ABC); //输出 200


2.#property//程序属性,用与EA启动时显示,如图
#property copyright "版权"
#property link " https://www.mql5.com"
#property version "1.00"
#property description "描述例子"
3.#include //包括文件,如库文件
#include <WinUser32.mqh> //到系统设置目录搜索
#include"mylib.mqh"//当前目录搜索


4.#import //输入函数
结构 :
#import "file_name"//开始
func1 define;
func2 define;
...
funcN define;
#import //结束
例子:
#import "stdlib.ex5"
string ErrorDescription(int error_code);
int RGB(int red_value,int green_value,int blue_value);


#import "user32.dll"
int MessageBoxW(uint hWnd,string lpText,string lpCaption,uint uType);
#import
void OnStart()
{
MessageBoxW(0,"内容","对话框",MB_OK|MB_ICONINFORMATION);
}


5.#ifdef, #ifndef, #else, #endif //条件编译
结构 :
#ifdef identifier
// 如果#define指令已经为预处理器定义标识符那么就会编译位于这里的代码。
#endif


#ifndef identifier
// 如果#define预处理器指令当前没有定义标识符则编译位于这里的代码。
#endif
例子 :
#define TestMode
void OnStart()
{
#ifdef TestMode
Print("Test mode");
#else
Print("Normal mode");
#endif


...持续更新...

声明:以上内容来源于网络,如有侵权请联系我们(123@shiyan.com)删除!
页: [1]
查看完整版本: MT5,外汇,人工神经网络,编程,EA,简洁之1.3「预处理的定义」