微信登录
注册忘记密码
查看: 911|回复: 0

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

[复制链接]

该用户从未签到

发表于 2022-7-13 13:47:45 | 显示全部楼层 |阅读模式
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)删除!

发表回复

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则