Precedence Rules
优先级规则
表格中的每组操作具有相同的优先级。操作的优先级越高,其在表格中的位置就越高。优先级规则决定了操作和运算数的分组。
注意:MQL4语言中操作的优先级对应于C++中采用的优先级。
| 操作 | 描述 | 执行顺序 |
|---|---|---|
| () [] . | 函数调用 引用数组元素 引用结构元素 | 从左到右 |
| ! ~ – ++ –– (类型) sizeof | 逻辑否定 位否定(补码) 符号改变 加一 减一 类型转换 确定字节大小 | 从右到左 |
| * / % | 乘法 除法 模块除法 | 从左到右 |
| + – | 加法 减法 | 从左到右 |
| ««br»> | 左移 右移 | 从左到右 |
| «br><= > >= | 小于 小于或等于 大于 大于或等于 | 从左到右 |
| == != | 等于 不等于 | 从左到右 |
| & | 位与运算 | 从左到右 |
| ^ | 位异或运算 | 从左到右 |
| | | 位或运算 | 从左到右 |
| && | 逻辑与运算 | 从左到右 |
| || | 逻辑或运算 | 从左到右 |
| ?: | 条件运算符 | 从右到左 |
| = *= /= %= += -= «= »= &= ^= |= | 赋值 带赋值的乘法 带赋值的除法 带赋值的模块运算 带赋值的加法 带赋值的减法 带赋值的左移 带赋值的右移 带赋值的位与运算 带赋值的异或运算 带赋值的位或运算 | 从右到左 |
| , | 逗号 | 从左到右 |
要改变操作的执行顺序,可以使用优先级更高的括号。
MQL4旧版本的优先级规则
MQL4旧版本的优先级规则如下。
表格中的每组操作具有相同的优先级。优先级越高,其在表格中的位置就越高。优先级规则决定了操作和运算数的分组。
| 操作 | 描述 | 执行顺序 |
|---|---|---|
| () [] | 函数调用 引用数组元素 | 从左到右 |
| ! - ++ –– ~ | 逻辑否定 符号改变运算 加一 减一 位否定(补码) | 从右到左 |
| & | ^ « » | 位与运算 位或运算 位异或运算 左移 右移 | 从左到右 |
| * / % | 乘法 除法 模块除法 | 从左到右 |
| + - | 加法 减法 | 从左到右 |
| «br><= > >= == != | 小于 小于或等于 大于 大于或等于 等于 不等于 | 从左到右 |
| || | 逻辑或运算 | 从左到右 |
| && | 逻辑与运算 | 从左到右 |
| = += -= *= /= %= »= «= &= |= ^= | 赋值 带赋值的加法 带赋值的减法 带赋值的乘法 带赋值的除法 带赋值的模块运算 带赋值的右移 带赋值的左移 带赋值的位与运算 带赋值的位或运算 带赋值的异或运算 | 从右到左 |
| , | 逗号 | 从左到右 |
使用优先级更高的括号可以改变操作的执行顺序。
注意:旧版MQL4中操作的执行优先级与C语言中的常规优先级有所不同。
最后更新于