HLFX.Ru Forum Страницы (3): « 1 [2] 3 »
Показать все 35 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- переписать на С? (https://hlfx.ru/forum/showthread.php?threadid=3886)


Отправлено thambs 25-04-2013 в 12:12:

KiQ
ээмм.. а указателю как такое передать?
у меня например есть массив DATA[ i*3], хочу сделать указатель eDATA=>DATA[ 1::3 ], то есть сослаться на каждый третий элемент.

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


Отправлено XaeroX 25-04-2013 в 13:35:

thambs
Увеличивай указатель на 3 при обходе.

__________________

xaerox on Vivino


Отправлено Дядя Миша 25-04-2013 в 15:38:

Какова практическая цель этой вырезки массивов?
Ну я понимаю, к примеру, если у нас массив объявлен как byte, а на самом деле там дрова лежатвекторы хранятся. И вот мы значит, сначала преобразовываем указатель во флоат, а потом двигаем его на 12 байт.
Для этого? Или есть еще какие-то неочевидные мне кейсы?

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 25-04-2013 в 16:02:

Цитата:
Дядя Миша писал:
Или есть еще какие-то неочевидные мне кейсы?

Массив координат xyzxyzxyzxyzxyzxyzxyzxyzx...
Надо осуществить операции только над z-компонентами.
Мне это сразу пришло на ум, потому и предложил делать += 3 в цикле, сдвигая указатель на 3 флоата.

__________________

xaerox on Vivino


Отправлено Дядя Миша 25-04-2013 в 16:32:

Ну всё равно никаких проблем же.
Да на Си можно всё что хочешь делать, кроме окошек, конечно.

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 25-04-2013 в 16:34:

Дядя Миша
А почему окошки нельзя?

__________________

xaerox on Vivino


Отправлено Дядя Миша 25-04-2013 в 16:39:

Очень уж муторно

Всё равно что унитаз вилкой чистить.

__________________
My Projects: download page

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

Цитата:

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


Отправлено thambs 25-04-2013 в 17:17:

>Массив координат xyzxyzxyzxyzxyzxyzxyzxyzx...

ну почти в точку. у меня массив макрчастиц [электрон;ион;атом;электрон;ион;атом;электрон;ион;атом] по электронам и ионам всё время бегаю, а атомы медленные и на электромагнитные поля им пофиг, зато их много, поэтому их обход делаю через некоторое большое количество циклов, ну и очень удобно иметь псевдонимы.

а насчёт общей области памяти для нескольких функций -- как
это реализуется?

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


Отправлено Дядя Миша 25-04-2013 в 18:49:

Цитата:
thambs писал:
а насчёт общей области памяти для нескольких функций -- как
это реализуется?

Лучше приведи пример.

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 25-04-2013 в 20:41:

Цитата:
XaeroX писал:
Массив координат xyzxyzxyzxyzxyzxyzxyzxyzx...
Надо осуществить операции только над z-компонентами.

Да ну их, эти си. Так гораздо веселее:
code:
everyThird :: [a] -> [a] everyThird (_:_:x:xs) = x:everyThird xs everyThird _ = []


Отправлено thambs 27-04-2013 в 03:01:

Дядя Миша
http://www.math.spbu.ru/user/rus/cl...r2.3.shtml#2.39
мм.. ну у меня вот так:
program main
...
[описание переменных и констант]
...
allocate( gArray( ixMin:ixMax,iyMin:iyMax ) )
allocate( pArray( ipMax*3,Cells ) )
...
далее тело программы, а потом блок
contains
subroutine1()
subroutine2()
... - все описанные в этом блоке подпрограммы могут напрямую обратиться к gArray, pArray и любой другой переменной из основной программы.
endprogram main

ну и, естественно, внешним подпрограммам их пришлось бы передавать в качестве параметров и их было бы тогда очень много.

в C такое как сделать? я просто даже не знаю как такое называется, чтоб запрос в гуугле составить.

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


Отправлено XaeroX 27-04-2013 в 04:52:

Цитата:
thambs писал:
ну и, естественно, внешним подпрограммам их пришлось бы передавать в качестве параметров и их было бы тогда очень много.

У моего шефа в функциях на фортране в среднем по 15-20 аргументов. Ему норм.
Цитата:
thambs писал:
в C такое как сделать? я просто даже не знаю как такое называется, чтоб запрос в гуугле составить.

В С (и во всех нормальных языках, даже в ассемблере) такое по умолчанию. Называется "глобальные переменные".
Если они в другом файле объявлены - тогда им надо прописать класс памяти extern.

__________________

xaerox on Vivino


Отправлено Дядя Миша 27-04-2013 в 06:17:

XaeroX фортран не поддерживает глобальные переменные?

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 27-04-2013 в 06:41:

Дядя Миша
В привычном нам виде - нет.
Есть коммон-блоки, но их надо в каждой функции переобъявлять, ну примерно как в похапе.
Это как если бы в С надо было каждую глобальную переменную объявлять в функции с ключевым словом extern.

__________________

xaerox on Vivino


Отправлено Дядя Миша 27-04-2013 в 11:25:

Мдя. Какое всё-таки щастье, что у нас есть Си.

__________________
My Projects: download page

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

Цитата:

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


Временная зона GMT. Текущее время 13:26. Страницы (3): « 1 [2] 3 »
Показать все 35 сообщений этой темы на одной странице

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