トップ  >  MQL4リファレンス  >  基本  >  変数
スポンサーリンク
検索

↑の検索エンジンが表示されない人は、
↓の古い検索エンジンを使用して下さい。
カスタム検索
MQL4リファレンスツリー
変数


変数の宣言

変数は使用する前に宣言する必要があります。
固有の名前は変数を識別する為に使用されます。
変数を宣言するには、型と固有の名前を指定する必要があります。
変数の宣言は処理ではありません。


シンプルな型
詳細
char, short, int, long,
uchar, ushort, uint, ulong
整数
color RGB色を表す整数
datetime 日付と時刻表す符号無し整数。
1970年1月1日0秒からの経過秒数。
bool trueとfalseのブーリアン値
double 倍精度浮動小数点数
float 単精度浮動小数点数
string 文字列


複合データ型
構造体(struct)は複合データ型で、他タイプ使用する作成する。
構造体型を宣言するまで、構造体型の変数を宣言する事は出来ません。




配列
配列はインデックスが付けれた同じ型のデータの連続です。

配列のインデックスには整数のみが使用出来ます。
配列は4次元配列まで宣言出来ます。

配列要素は番号付けは0から始まります。
1次元配列の最後の要素は配列の大きさよりも1少ない値になります。
この為、50配列の最後の要素の呼び出しは[49]を書く事を意味します。

多次元配列にも同様の事が言えます。
サンプルソースのd_temp_array[7][40]の最後の要素は、d_temp_array[6][39]と書きます。


静的配列はtimeseriesとして表現する事が出来ません。
その為、配列要素の最初から最後までのアクセスを設定するArraySetAsSeries()関数を静的配列に使う事は出来ません。
timeseriesと同じ配列アクセスにしたい場合は、動的配列オブジェクトに使用します。


配列の範囲外の要素にアクセスすると、実行中のサブシステムは致命的なエラーを発生しプログラムが停止します。



アクセス指定子
アクセス指定子は、変数(構造体クラスのメンバの変数も同様)に対してどのようなアクセスが出来るかを宣言します。

const指定子は、変数を定数として宣言し、実行時にこの変数を変更する事が出来ません。
またconst指定子の変数は、宣言する時だけ初期化する事が許可されます。


サンプルソース:
// ■シンプルな型の変数宣言―――
int      i_temp;                            // 整数型の変数宣言
color    co_temp   = C'0x44,0xB9,0xE6';     // color型の変数宣言
datetime dt_temp   = D'2004.01.01 00:00';   // datetime型の変数宣言
bool     b_temp;                            // bool型の変数宣言
double   d_temp;                            // double型の変数宣言
doublefloat    f_temp;                            // float型の変数宣言
string   str_temp;                          // string型の変数宣言


// ■複合型の変数宣言―――
struct st_time_type{                        // 構造体型の宣言
   int hour;   
   int minute; 
   int second; 
};

st_time_type st_time_value;  // st_time_type構造体型の変数を宣言


// ■変数の配列宣言―――
int    i_temp_array[50];                   // int型:50個の1次元配列
double d_temp_array[7][40];                // double型:40個の配列からなる7個の2次元配列
st_time_type st_time_array[100];           // st_time_typek構造体の配列

int    i_temp_array_d[0.1];                // エラー:インデックスが整数で無い
int    i_temp_array_4[2][2][2][2];         // 4次元配列で宣言
int    i_temp_array_5[2][2][2][2][2];      // エラー:4次元配列を超えている

// ■const指定付き変数の宣言―――
const int    i_temp_const_value = 1;      // const int変数を初期値=1で宣言。








クラスメンバのアクセス修飾子

修飾子 詳細
public クラスメンバへの無制限アクセスが可能
protected 同じクラスと、継承されたクラスからのみアクセス可能
private 同じクラスからのみアクセス可能
virtual クラスメンバにのみ適用されます。
virtual修飾子付きのメンバは仮想関数のテーブルに配置する必要があるとコンパイラに指示します。


記憶域クラス

static,input,externの3つの記憶域クラスがあります。
記憶域クラスの修飾子は、グローバルプールと呼ばれている事前に割り当てられたメモリ領域への割り当てをコンパイラに指示します。

また、この修飾子は変数データの特別な処理を指示します。

ローカルレベルでstatic修飾子の無い変数が宣言された場合、変数用のメモリはプログラムスタックに自動的に割り当てられます
可視領域を超えた時に割り当てられたメモリが自動的に開放されます。


セクション
ローカル変数
仮引数
静的変数
グローバル変数
input変数
extern変数
変数の初期化
変数の可視範囲と有効期間
オブジェクト生成と削除




スポンサーリンク
スポンサーリンク


Copyright ©2015 MT4でEA自作しちゃお~ All Rights Reserved.


Top

inserted by FC2 system