13:36
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: AXE, Weddew  
Массивы в Switch
H1TnRuNДата: Вторник, 01.06.2010, 12:53 | Сообщение # 1
Освоившийся
Группа: Продвинутые
Сообщений: 82
Награды: 1
Город: Cherepovets
Репутация: 17
Замечания: 0%
Статус:
Допустим есть функция:
Code
forward Function(var);
public Function(var)
{
  switch (var)
  {
      case 0:
      {
    new a;
    new b[8];
      }
      case 1:
      {
    new a;
    new b[8];
      }
  }
}

Компилится на ура. А вот при компиляции функции типа:
Code
forward Function(var);
public Function(var)
{
  switch (var)
  {
      case 0:
      {
    new a;
    new b[8];
    new c[8][8];
      }
      case 1:
      {
    new a;
    new b[8];
      new c[8][8];
      }
  }
}

Появляются ошибки о двойном объявлении a, b, c.
Code
..\Untitled.pwn(17) : error 021: symbol already defined: "a"
..\Untitled.pwn(18) : error 021: symbol already defined: "b"
..\Untitled.pwn(19) : error 021: symbol already defined: "c"
Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase
3 Errors.

Если кто знает просьба ответить, заранее спс.

EakwarpДата: Вторник, 01.06.2010, 13:04 | Сообщение # 2
Мастер джэдай
Группа: Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус:
forward Function(var);
public Function(var)
{
new a;
new b[8];
new c[8][8];
switch (var)
{
case 0:
{

}
case 1:
{

}
}
}
не?


More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.


Valakas Roleplay on Twitter

Платные консультации, разработка, в ICQ. Дорого.
stepmexДата: Вторник, 01.06.2010, 13:05 | Сообщение # 3
Мастер джэдай
Группа: Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус:
H1TnRuN, изучи что такое типы переменных http://wiki.sa-mp.com/wiki/Scripting_Basics
Не рекомендую использовать многомерные массивы локально!



И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
H1TnRuNДата: Вторник, 01.06.2010, 13:21 | Сообщение # 4
Освоившийся
Группа: Продвинутые
Сообщений: 82
Награды: 1
Город: Cherepovets
Репутация: 17
Замечания: 0%
Статус:
Eakwarp, ну да, такого я конечно и сам додумался :)
stepmex, это я уже прочитал давно все, там про проблему выше ничего вроде не написано.
Причем странно то, что все что выше c[8][8] является якобы тоже уже объявленным, хотя там может быть и не массив вовсе.
Как будто он и все что вышего него становиться глобальным mda
Quote (stepmex)
Не рекомендую использовать многомерные массивы локально!

Получается их и если захочешь, то не сможешь использовать, если конечно у них имена совпадают.
Спасибо за оперативный ответ :)

stepmexДата: Вторник, 01.06.2010, 14:18 | Сообщение # 5
Мастер джэдай
Группа: Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус:
Quote (H1TnRuN)
там про проблему выше ничего вроде не написано.
написано ты просто искал не то ;)
А так проблема тут не столько в переменных сколько с самой концепции switch - case.
Если например
Code
if{}
if{}
это 2 разных "блока", то
Code
switch{
case 0:{}
case 1:{}
}
это один "блок"
чтобы их разделить нужно в каждом case в конце прописывать breack;



И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
AwmДата: Вторник, 01.06.2010, 14:29 | Сообщение # 6
Группа: I'm V.I.P.
Сообщений: 3235
Награды: 55
Город: Tallinn
Репутация: 1661
Замечания: 0%
Статус:
Quote (stepmex)
чтобы их разделить нужно в каждом case в конце прописывать breack;

break; crazy




"Life is hard... life is harder if you're stupid." - John Wayne


Сообщение отредактировал Awm - Вторник, 01.06.2010, 14:29
stepmexДата: Вторник, 01.06.2010, 15:19 | Сообщение # 7
Мастер джэдай
Группа: Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус:
Awm, я всегда сперва неправильно пишу, даже когда програмирую, потом замечаю что неподсветилось и исправляю :D


И создал Бог женщину!.. Существо получилось злобное, но симпатичное...

Сообщение отредактировал stepmex - Вторник, 01.06.2010, 15:20
H1TnRuNДата: Вторник, 01.06.2010, 15:42 | Сообщение # 8
Освоившийся
Группа: Продвинутые
Сообщений: 82
Награды: 1
Город: Cherepovets
Репутация: 17
Замечания: 0%
Статус:
stepmex, хм, чисто для проверки попробывал дописать Брик.
error 024: "break" or "continue" is out of context
я так понимаю в Павно Брик можно писать только в циклах что-ли?

Добавлено (01.06.2010, 15:42)
---------------------------------------------

Quote (stepmex)
это один "блок"

Да, но ведь в них можно объявлять локальные переменные с одинаковыми именами без 219 варнинга.
Но почему-то с многомерными массивами такое не прокатывает...

  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua