Ошибки, баги, вопросы - страница 2502

[Удален]  
Alexey Viktorov:

На мой взгляд всё работает. Поскольку в вашем примере только один тип в структуре, то и выравнивать нет смысла.

Ошибаетесь, раотает неправильно. Смысл есть. Это баг. https://www.mql5.com/ru/forum/1111/page2498#comment_12349659

 

Здравствуйте. Подскажите, пожалуйста, в MT5 есть горячие клавиши для торговли? Я не нашел в инструкции. Если нет, то есть возможность это реализовать? Т.е. я нажал клавишу и открылся ордер, есть что-то подобное?

 
Vict:

Ошибаетесь, раотает неправильно. Смысл есть. Это баг. https://www.mql5.com/ru/forum/1111/page2498#comment_12349659

Ну какой-же баг?

struct A pack(4)
{
  short j;
};

void OnStart()
{
   A q[2];
   Print(sizeof(q)); // 4
   return;
}

вы объявляете массив мз двух элементов по два байта и получаете как и должно бвть 4 байта. Где баг? В чём?

А вот это

struct A pack(4)
{
  short j;
  int   b;
};

void OnStart()
{
   A q[2];
   Print(sizeof(q)); // 16
   return;
}

выравнивается по 4 и 2 элемента будут занимать 2*8 байт.

 
astronom55:

Здравствуйте. Подскажите, пожалуйста, в MT5 есть горячие клавиши для торговли? Я не нашел в инструкции. Если нет, то есть возможность это реализовать? Т.е. я нажал клавишу и открылся ордер, есть что-то подобное?

Наступил кот на клавиатуру и наторговал за вас?

Сделайте сами - это не сложно.

 
astronom55:

Здравствуйте. Подскажите, пожалуйста, в MT5 есть горячие клавиши для торговли? Я не нашел в инструкции. Если нет, то есть возможность это реализовать? Т.е. я нажал клавишу и открылся ордер, есть что-то подобное?

Справка терминала: Горячие клавиши - Для продвинутых пользователей - Начало работы


Если нужно действие: "прям один раз нажал и открыли позицию" - тогда необходимо в терминале назначить сочетание клавиш для скрипта или советника (скрипт или советник необходимо или скачать или написать или заказать).

Горячие клавиши - Для продвинутых пользователей - MetaTrader 5
Горячие клавиши - Для продвинутых пользователей - MetaTrader 5
  • www.metatrader5.com
Горячие клавиши — это клавиши и их комбинации, которые позволяют быстро выполнять различные команды без обращения к меню и панелям управления. Существует возможность назначать горячие клавиши для вызова любого элемента окна "Навигатор", за исключением элементов группы "Счета". Чтобы назначить сочетание клавиш элементу, выполните команду...
 
Artyom Trishkin:

Наступил кот на клавиатуру и наторговал за вас?

Сделайте сами - это не сложно.

Я не представляю как это сделать. Скрипт такой не нашел.
[Удален]  
Alexey Viktorov:

Ну какой-же баг?

вы объявляете массив мз двух элементов по два байта и получаете как и должно бвть 4 байта. Где баг? В чём?

А вот это

выравнивается по 4 и 2 элемента будут занимать 2*8 байт.

Извините, но если такое пишите, то тему не понимаете.

Аналог на крестах:

#include <iostream>
struct alignas(4) A
{
  short j;
};

int main()
{
   A q[2];
   std::cout << sizeof(q) << std::endl; // 8
   return 0;
}

Ошибка наверное не здесь?

 
Vict:

Извините, но если такое пишите, то тему не понимаете.

Да нет, похоже вы не понимаете.

//g++  5.4.0

#include <iostream>
#pragma pack (push, 4)
struct A
{
  short j;
};
#pragma pack (pop)

int main()
{
   A q[2];
   std::cout << sizeof(q) << std::endl; // 4
   return 0;
}
[Удален]  
TheXpert:

Да нет, похоже вы не понимаете.

#pragma pack от мелкомягких очень своеобразная штучка (принцип его работы меня сейчас удивил честно говоря). Не удивительно, что попавший в стандарт alignas работает иначе.

Вот ещё:

#include <iostream>
struct A
{
  short j;
} __attribute__((aligned(4)));

int main()
{
   A q[2];
   std::cout << sizeof(q) << std::endl; // 8
   return 0;
}
 
Vict:

#pragma pack от мелкомягких очень своеобразная штучка (принцип его работы меня сейчас удивил честно говоря). Не удивительно, что попавший в стандарт alignas работает иначе.

да хорош уже )

#include <iostream>
struct A
{
  short j;
} alignas(4) ;

int main()
{
   A q[2];
   std::cout << sizeof(q) << std::endl; // 4
   return 0;
}

#pragma pack отлично пашет на gcc в том числе, а то что вы написали это как раз внутренний атрибут gcc, который работает не так, как работает aligned.