#property strict
strictはプログラムのプロパティで、厳格なコンパイルをしてエラーや警告箇所を発見してくれます。
通常は設定するようにしてください。又、これを設定した場合、EAの「パラメーターの入力」の変数に日本語が使用できるようになります。
構成
#property strict
使用例
「#property strict」の有無の違い
厳格なコンパイルを実行する「#property strict」が有る時と無い時のコードを比較します。
結論としては、プログラムの間違いを防ぐためにも必ず「#property strict」を設置するようにしてください。
コード
//「#property strict」が有りの時
#property strict
extern int a = 1; // 変数aの初期値
void OnInit()
{
a = a + 0.1; // 変数aの小数点以下が切り捨てられるため警告が出ます
Print("変数a = ",a); // 変数a = 1
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果
「#property strict」が有りの時
「#property strict」が有りの時は、今回の場合、警告(warnings)が発生します。発生理由は、小数点がある数字を整数型にしようとしていたからです。
エキスパートタブに表示される結果も「1.1」にならなければならないところ「1」と小数点以下が切り捨てられて表示されてしまいます。
「パラメーターの入力」画面では、パラメーター入力用のコードと同じ行に書かれたコメントが変数の名称になるので、日本語が表示できるようになり見やすくなります。
「#property strict」が無しの時
「#property strict」を削除かコメントにするなどにして無効化にしてください。
結果は「#property strict」を無しにすると有りの時に発生していた警告が出なくなります。
そのため「#property strict」を無しにした場合、コードの間違いに気付かなくなってしまいます。
コードの修正箇所
今回のコードは、変数 aを int型から double型にすることで解決します。
コードの厳格チェックとパラメーターの入力でも見易くなるので「#property strict」は必ず設置するようにしてください。