错误、漏洞、问题 - 页 2868

 
Vladimir Simakov:
不,开发者的逻辑是可以理解的,但对我来说,我宁愿自己明确指定u'y',当我需要的时候。

只是不清楚char类型 是如何被打败的。

 
一个编译错误。
void OnStart()
{
        Print(typename( char(0))); //Error: '0' - some operator expected
}

但这种方式。

        Print(typename((char)0) ); //нормально

这有什么区别呢?

 
A100:
编译错误。

但这种方式。

这有什么区别呢?

似乎只有"(类型)值 "是一种类型转换,但 "类型(值)"是一种初始化,在你的情况下,它不能返回任何东西。虽然已经很久没有打开过μl了))。

 
Alexandr Andreev:

在µl中,只有"(类型)值 "似乎是一种类型转换,但 "类型(值)"是一种初始化,在你的情况下,它不能返回任何东西。虽然已经很久没有打开过μl 了))。

所以打开https://www.mql5.com/ru/docs/basis/types/casting

单位:数字类型的转换。"显式类型转换的写法如下" ...更多内容

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Часто возникает необходимость преобразовать один числовой тип в другой. Не каждый числовой тип допустимо преобразовать в другой, допустимые преобразования в MQL5 показаны на схеме: Сплошные линии со стрелками обозначают преобразования, которые выполняются без потери информации. Вместо типа char может выступать тип bool (оба занимают в памяти 1...
 

是的,也查过了,我记得很久以前就遇到过这个,关于我上面写的东西。我对错误的信息表示歉意)。

 
A100:
编译错误。

但这种方式。

这有什么区别呢?

是的,这也是一个编译错误

#define  J '+'          // char

void OnStart()
{
    Print((typename)J);
}
#define  J '+'          // char

void OnStart()
{
    Print((typename)(J));
}
 
Vladimir Simakov:
开发者的逻辑很清楚,但对我来说,我最好在需要的时候明确说明u'y'。

我不明白这种逻辑。当到处都在进行全面优化,并把减少资源作为优先事项时,
,为什么要把Unicode中的基本字符类型增加到2个字节。
因此,mql的字符串类型 变成了昂贵的。
真的,最好是有一个额外的指定符u'sh'

char的类型的鬼魂才被替换。

#define  J (char)'+'     // char

void OnStart()
{
    Print(J);           // 43
    Print(typename(J)); // char
}

但在这种情况下,我们有类型的差异。

#define  J '+'              

void OnStart()
{
   Print(J);                // 43
   Print(typename(J));      // ushort
   Print(typename(char));   // char
}

这个Unicode真是一团糟。

 
Roman:

是的,这也是一个编译错误

你有一个语法错误--给我们一个在括号里有(tyename)的工作代码的例子。你还不如在括号里写上(OnStart)。

 

另一个有问题的MQL编译器信息的例子。

#ifdef __MQL__
void OnStart() {
{
}
#endif //Error: '#endif' - unexpected end of program

#endif和它有什么关系--你如何猜测错误的实际位置?

在C++通知错误的时候

#ifdef __cplusplus
void OnStart() {
{
} //Error: expected '}' at end of input
#endif
 

我希望mql开发者正在阅读这个页面。

你们什么时候能做出一个正常的验证器?

在mt4的验证器中存在一个错误。不可能从其他时间段获得开盘/收盘价,最高/最低烛光数据。