HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > переписать на С?
имеет ли смысл заморачиваться?
Страницы (3): [1] 2 3 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



переписать на С?

в связи с тем что в gfortran обнаружился на редкость идиотский баг, g95 не хочет линковать модули от plplot'а, а триал ifort'а требует анальной регистрации, уже подумываю переписать свои наработки на C (не смотря на боль). в общем, посоветуйте справочник по переходу.
ну и сразу задам вопросы, что бы знать стоит ли игра свеч:

1)производные типы данных есть только в ++ или и в чистом C?
2)массивы всегда начинаются с нуля, или можно зааллокатить произвольные границы?
3)есть ли такое понятие как вырезка массива?
4)в фортране есть такая удобная штука -- contains блок: размещённые внутри этого блока функции и подпрограммы имеют доступ ко всей памяти родительского блока. в C что ни будь аналогичное есть?
5)как работать со строками, есть какой ни будь аналог write или format'а?

__________________
http://www.moddb.com/mods/monorail-quest

Сообщить модератору | | IP: Записан
Сообщение: 119064

Старое сообщение 24-04-2013 19:47
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32130
Нанёс повреждений: 392 ед.

Рейтинг



для строк есть sprintf
массивы всегда начинаются с нуля.
производные типы данных только в С++
что такое вырезка массива?
contains block? не, не слышал

Следует понимать, что чистый Си минимально отрывается от реального положения дел: что напишешь, то и будет выполняться.
Практически во всех остальных языках полно неочевидных конструкций, существующих только на этапе компиляции. В других языках этот слой абстракции за каким-то чортом существует и в исполняемой программе, но это скорее удел виртуальных машинок, а таковыми я считаю все языки, со встроенным сборщиком мусора, хоть Ксерокс и Тот Кого Я Учил Брить со мной не согласятся

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 119065

Старое сообщение 24-04-2013 21:02
-
Cybermax
Житель форума

Дата регистрации: May 2006
Проживает: ㅤ
Сообщений: 5116

Рейтинг



Ничерта не понял, удачи тебе мужик!

__________________

За это сообщение Cybermax получил предупреждение за флуд

Сообщить модератору | | IP: Записан
Сообщение: 119066

Старое сообщение 24-04-2013 21:04
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32130
Нанёс повреждений: 392 ед.

Рейтинг



А хотя. Я тут терминологию перечитал. Есть производные типы данных в Си, кроме классов, разумеется. Но практически любой класс может быть описан структурой и неким набором функций, с заранее обговоренным нейм-спейсом.
Т.е. в С++ мы бы писали

C++ Source Code:
1
MyClass :: Set( int value )
2
{
3
  m_iValue = value;
4
}

а в чистом Си
C++ Source Code:
1
MyClass_Set( mystruct_t *p, int value )
2
{
3
  p->m_iValue = value;
4
}

Если учесть, что после компиляциии в С++ все классы развернутся в нечто аналогичное, только автоматически, то разница не так уж велика.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 119067

Старое сообщение 24-04-2013 21:08
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



>что такое вырезка массива?

ну например M(1:9:3) -- будет выглядеть как массив из элементов массива M от начиная с 1го, до 9 с шагом 3

>[i]contains block? не, не слышал


хмм ну это так

program main
[описание переменных]
[тело программы]
contains
[subroutine()]
[function[]] -- все функции и подпрограммы внутри этогоо contains'а имеют доступ ко всем переменным из main
endprogram

>минимально отрывается от реального положения дел
ну вот фортран тоже, но блин такая беда с компилятором просто угнетает

__________________
http://www.moddb.com/mods/monorail-quest

Сообщить модератору | | IP: Записан
Сообщение: 119069

Старое сообщение 24-04-2013 21:32
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4128

Рейтинг



Цитата:
Дядя Миша писал:
что такое вырезка массива?

Наверно, как в петоне срез списка:
list1[3:10]
list2[16:]
list3[:]

Сообщить модератору | | IP: Записан
Сообщение: 119070

Старое сообщение 24-04-2013 21:33
- За что?
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



>Но практически любой класс может быть описан структурой и неким набором функций, с заранее обговоренным нейм-спейсом.

ага, вроде понял. т.е. это аналог интерфейсного блока.

__________________
http://www.moddb.com/mods/monorail-quest

Сообщить модератору | | IP: Записан
Сообщение: 119071

Старое сообщение 24-04-2013 21:37
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34491
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Есть мнение (и не только моё), что нужно переписать на си весь код, написанный на фортране, после чего стереть все существующие в мире копии g77/g95/ifort, включая исходники и мануалы, сжечь книги по ним и пристрелить наиболее йаростных адептов этого языка.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 119073

Старое сообщение 25-04-2013 03:43
-
marikcool
Житель форума

Дата регистрации: Jul 2011
Проживает: kz
Сообщений: 1522
Возраст: 37

Рейтинг



Нафиг тройные масивы тебе, оберни все класами в плюсах и все быстро сделаешь.

__________________
vk.com/skullcapstudios

За это сообщение marikcool получил предупреждение за коверканье русского языка

Сообщить модератору | | IP: Записан
Сообщение: 119076

Старое сообщение 25-04-2013 04:57
- За что?
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2087

Рейтинг



thambs если я правильно понял, вырезку массивов можно сделать через for:

C++ Source Code:
1
int[10] array1;
2
int[5] array2;
3
 
4
for (int i = 0; i < 10; i += 2) {
5
  array2[i >> 1] = array1[i];
6
}

__________________
-Brain is dead-

Сообщить модератору | | IP: Записан
Сообщение: 119077

Старое сообщение 25-04-2013 06:20
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34491
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


KiQ
Если не секрет, кто научил тебя строить циклы таким образом?
Почему не цикл от 0 до 5 с адресацией вида array1[i*2]?

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 119078

Старое сообщение 25-04-2013 06:34
-
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2087

Рейтинг



XaeroX да это я в лоб сделал эмуляцию этой вырезки

__________________
-Brain is dead-

Сообщить модератору | | IP: Записан
Сообщение: 119080

Старое сообщение 25-04-2013 06:53
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34491
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


KiQ
Просто странно, решение "в лоб" через операторы сдвига.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 119084

Старое сообщение 25-04-2013 09:46
-
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2087

Рейтинг



XaeroX для скорости же. Умножение тоже можно заменить на <<1

__________________
-Brain is dead-

Сообщить модератору | | IP: Записан
Сообщение: 119085

Старое сообщение 25-04-2013 10:32
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34491
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


KiQ
Я не спрашиваю, зачем заменять деление на сдвиг, это знает даже ребёнок.
Я спрашиваю, зачем строить цикл так, что при адресации нужно выполнять сдвиг (или деление) вместо потенциального "бесплатного" умножения, выполняемого самой командой mov?
Ладно, это риторический вопрос. В очередной раз убедился, до чего ява и сишарп довели народ. Никто уже и не задумывается, как компьютер выполняет программу. Зато как заменить умножение на сдвиг - это все бегом делают. Двойные стандарты...

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 119088

Старое сообщение 25-04-2013 11:12
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 05:21. Новая тема    Ответить
Страницы (3): [1] 2 3 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > переписать на С?
имеет ли смысл заморачиваться?
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024