FreeBasic
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.

терминология, или как что называеться по русский

Участников: 2

Перейти вниз

терминология, или как что называеться по русский Empty терминология, или как что называеться по русский

Сообщение  Eric-S Пн Авг 18, 2008 8:50 pm

У меня возникли некоторые проблемы с переводом.
Да и не совсем понятно, как что правильно называеться.

pointer, ptr, префиксы "@" и "*".
Допустим "@" и соответственно ptr это "указатель" или "ссылка".
Тогда, что такое "pointer" и "*".

"*" это "value of", насколько я понимаю. Т.е. смещение значения.

Но pointer, это не смещение однозначно!


Если кто знает, пожалуйста, чётко распишите, ху ис ху!?

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 40
Откуда : Россия, Санкт-Петербург

http://eric50.narod.ru

Вернуться к началу Перейти вниз

терминология, или как что называеться по русский Empty Re: терминология, или как что называеться по русский

Сообщение  tux Вт Авг 19, 2008 9:14 am

Наскока я понимаю ptr и pointer - это одно и тоже (просто видать каму как удобней) и о необходим тока приобъявлении указателя на переменную.
@ - это оператор получения адреса переменной (аналог & в Си)
* - оператор "разименовывания" (помоему так ето называется), те получение значения переменной по ее адресу (точно так же как Си)
@ и * являются противоположными по фунциям операторы, см пример
Код:

dim as byte pVar=55
dim as byte ptr ppVar
ppVar=@pVar
print pVar
print ppVar
print @pVar
print *ppVar
print *@*@*@*@*@*@pVar
print @*@*@*@*@*@*ppVar
sleep
tux
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 36
Откуда : Сибирь

http://tux.nsk.ru/

Вернуться к началу Перейти вниз

терминология, или как что называеться по русский Empty Re: терминология, или как что называеться по русский

Сообщение  Eric-S Вт Авг 19, 2008 2:00 pm

Ок! Значит разъименовывание.

Поржал над *@*@*@ это нечто! Если оно ещё и работает, то однозначно писец.


Только вот ptr и pointer разные фишки.
pointer, я использую, там где должно быть разъыминовывание.


Код:

dim a as integer
dim pa as integer ptr
pa = @a
va = *pa

print a
print @pa
print va

На самом деле в таком примере нет смысла.

Практическое же применение pointer я нашел только для объектов класса.


Самое что интересное pointer это именно указатель, а не данные. Правда обосновать не могу, нужны тесты.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 40
Откуда : Россия, Санкт-Петербург

http://eric50.narod.ru

Вернуться к началу Перейти вниз

терминология, или как что называеться по русский Empty Re: терминология, или как что называеться по русский

Сообщение  tux Вт Авг 19, 2008 2:15 pm

Из родного справочника:

Ptr
Dim symbolname As DataType {Ptr | Pointer}
Declares a pointer variable. The same as Pointer.

Pointer
Dim symbolname As DataType {Ptr | Pointer}
Declares a pointer variable. The same as Ptr.
те "Объявление переменной указателя. Тоже самое что и Ptr"

А указатель это четырехбайтовая переменная наподобе integer (но для компилятора она понимается именно как указатель), которая хранит адрес какого либо блока данных или другой переменной.
По идее можно указателю присвоить прям из переменной integer любой адрес, тока помоему компилятор будет выдавать предупреждение о несоответствии типов.
Опреатор @ какраз возвращает значение типа указателя, моэтому и требуется, чтобы это значение присваивалось переменной типа ptr.
tux
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 36
Откуда : Сибирь

http://tux.nsk.ru/

Вернуться к началу Перейти вниз

терминология, или как что называеться по русский Empty Re: терминология, или как что называеться по русский

Сообщение  Eric-S Вт Авг 19, 2008 4:19 pm

Ну с природой указателя понятно.
А разделили его от integer, на случай если будут изменения в размере. Между прочим, не integer, а uinteger, так как положительное целое.

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

Но вот цитатки из справочника... Мой английский не настолько крут, чтобы врубиться в чём прикол.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 40
Откуда : Россия, Санкт-Петербург

http://eric50.narod.ru

Вернуться к началу Перейти вниз

терминология, или как что называеться по русский Empty Re: терминология, или как что называеться по русский

Сообщение  tux Вт Авг 19, 2008 5:10 pm

На счет справочника, там про pointer написано, что ето то же самое что и ptr, а про ptr наоборот.

А в подобном коде компилятор ругнется, чтото про несоответствие типов, но скомпилит и прога работать будет нормально
Код:

dim as byte pVar
dim as uinteger pInt
pInt=@pVar
print pInt
sleep
tux
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 36
Откуда : Сибирь

http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения