Что вызывает ошибку переполнения стека в mql4? - страница 3

 
RaptorUK:
Но он может обрабатывать функции такого размера ... как я уже объяснял, измените тип функции и не будет ошибки компиляции для функции такого же размера ...


Значит ли это, что функция int требует больше ресурсов для выполнения? Может быть, тогда метакавычки могут сделать init, deinit и start недействительными, чтобы они потребляли меньше ресурсов.
 
RaptorUK:
Но он может обрабатывать функции такого размера ... как я уже объяснял, измените тип функции, и ошибки компиляции не будет для функции такого же размера ...

... или оставить его как int и оставить в return(0); и сделать это для всех вызовов...

   ReturnedValue = ObCreate("EURUSDg",Column1xg,15,ZoomTimes);
   ReturnedValue = ObCreate("EURUSDa",Column1xa,15,ZoomTimes);

... где ReturnedValue - int... угадайте что? Никакой ошибки компиляции.


Сделайте свой код осмысленным... и вот, как по волшебству, ошибка исчезает, странно, да?

 
Функция int, возвращающая 0, должна быть сравнима с функцией void, так что это означает, что что-то есть.
 
tonny:

Значит ли это, что функция int требует больше ресурсов для выполнения? Может быть, тогда метакавычки смогут сделать init, deinit и start недействительными, чтобы они потребляли меньше ресурсов.
Конечно,функция int требует больше ресурсов для выполнения... она должна возвращать значение, и это значение должно храниться в памяти, чтобы его можно было вернуть. Я видел, как люди пишут код с init, start и deinit, объявленными как void... Это не то, что я делаю.
 
RaptorUK:

... или оставить его как int и оставить в return(0); и сделать это для всех вызовов...

... где ReturnedValue является int... угадайте что? Никакой ошибки компиляции.


Сделайте свой код осмысленным ... и вот, как по волшебству, ошибка исчезнет, странно, да?


Функция int также возвращает 0. В любом случае проблема решена, но что касается ошибки, я думаю, что она появляется там, где не должна.
 
tonny:
Функция int, возвращающая 0, должна быть сравнима с функцией void, так что это означает, что что-то есть.
Нет, это не так... функция void не возвращает значение... Значения 0, 1, 10000 занимают одинаковое пространство памяти для сохранения ... все они типа int, а int использует 4 байта. void не возвращает ничего, что занимает 0 байт . . .
 
Это означает, что даже с пустотой, если мы будем добавлять больше объектов, это достигнет точки напряжения и снова вызовет ошибку. Мы согласны?
 
Я расцениваю молчание как "да". Дело закрыто.
 
tonny:
Это означает, что даже с пустотой, если мы будем добавлять больше объектов, это достигнет точки напряжения и снова вызовет ошибку. Мы согласны?
Нет, я не согласен.

Но, похоже, вы можете быть правы...
 
RaptorUK:
Нет, я не согласен.

Но, похоже, вы правы...

Теперь мы на одной странице.
Причина обращения: