Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Опубликуй статью. Мы сами переведем ее на другие языки!
Alexey Navoykov
3958
Alexey Navoykov 2014.07.23 08:12 

В документации функция определена так:    int  ArraySize(const void&  array[]);

Однако следующий код выдаёт FALSE:

int array[5];
Alert( ArraySize(array) > -1 );

Из чего следует, что в реальности функция определена как uint, поэтому -1 тоже приводится к uint.

Необходимо либо поправить справку, либо привести функцию в соответствие с описанием.

Alexey Navoykov
3958
Alexey Navoykov 2014.07.23 08:31  

Хм, попробовал такую проверку:

void f(int a) { Alert("int"); }
void f(uint a) { Alert("uint"); }
void f(long a) { Alert("long"); }
void f(ulong a) { Alert("ulong"); }

void OnStart()
{
  int array[5];  
  f( ArraySize(array) );
}

Получаю "int".  Тогда вообще непонятно, в чём дело.

TarasBY
1744
TarasBY 2014.07.23 11:54  
Meat:

В документации функция определена так:    int  ArraySize(const void&  array[]);

Однако следующий код выдаёт FALSE:

Из чего следует, что в реальности функция определена как uint, поэтому -1 тоже приводится к uint.

Необходимо либо поправить справку, либо привести функцию в соответствие с описанием.

А если так:

int array[5];
Alert (ArraySize (array), " > -1");

?

keekkenen
1128
keekkenen 2014.07.23 13:20  
это уже шаманством попахивает
Alexey Navoykov
3958
Alexey Navoykov 2014.07.23 15:02  
TarasBY:

А если так:

?

И что?  Зачем мне ваши кавычки?
TarasBY
1744
TarasBY 2014.07.23 15:18  
Meat:
И что?  Зачем мне ваши кавычки?
...посмотреть "чего выводится".
Dmitry Fedoseev
41218
Dmitry Fedoseev 2014.07.23 15:21  
TarasBY:
...посмотреть "чего выводится".


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

Если прикалываетесь, надо знать место шуткам. 

TarasBY
1744
TarasBY 2014.07.23 15:43  
Integer:


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

Если прикалываетесь, надо знать место шуткам. 


Дмитрий, мания величия лечится! Дайте мне свой адрес - я вас избавлю от неё.


P.S. Сочтите моё предложение за искреннее желание помочь.

Dmitry Fedoseev
41218
Dmitry Fedoseev 2014.07.23 15:47  
TarasBY:

Дмитрий, мания величия лечится! Дайте мне свой адрес - я вас избавлю от неё.


P.S. Сочтите моё предложение за искреннее желание помочь.


Ясно понял, второй вариант.  Сложно поверить, но факт есть факт.
TarasBY
1744
TarasBY 2014.07.23 15:59  

Алексей, всё-таки дело не в функции ArraySize(), так как этот вариант:

    int array[5], size = ArraySize (array);
    Alert (size > -1);

отрабатывает правильно.

Dmitry Fedoseev
41218
Dmitry Fedoseev 2014.07.23 16:02  

В ней дело, в ней.

int array[5];
bool x=(ArraySize(array)>(-1));
  Alert(x); // false

 

    

/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий