Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.05;
Скачать: CL | DM;

Вниз

Еще вопросик по Символам   Найти похожие ветки 

 
Steep ©   (2006-10-20 10:26) [0]

Не подскажете что это за символы и зачем они нужны
^ @
Часто вижу их, но зачем не знаю...


 
Zeqfreed ©   (2006-10-20 10:29) [1]

Если не знаешь, лучше не трогай :)
@ - унарный оператор взятия адреса.
^ - разыменование указателя/объявление типа-указателя.


 
StriderMan ©   (2006-10-20 10:32) [2]


> Zeqfreed ©   (20.10.06 10:29) [1]
> ^ - разыменование указателя/объявление типа-указателя.

еще кажется в константах так можно степень указать.


 
DrPass ©   (2006-10-20 10:39) [3]


> Не подскажете что это за символы и зачем они нужны

Смотря в каком контексте. Если @#$, то это не обязательно взятие адреса.

> еще кажется в константах так можно степень указать

Если и можно, то не в Паскале. Экспоненциальная часть вещественных констант обозначается буквой E


 
Steep ©   (2006-10-20 10:41) [4]


> Экспоненциальная часть вещественных констант обозначается
> буквой E

бррррррррр ;)

а можете написать про все попроще..


 
SergKon ©   (2006-10-20 10:55) [5]

1.2E+15


 
Anatoly Podgoretsky ©   (2006-10-20 12:19) [6]

Со вторым все одназначно, это оператор взятия адреса, а вот первый настоящий многостаточник, но чаще всего разъименование.
Ответ зависит от того, в каком контексте ты это встречал.


 
Джо ©   (2006-10-20 12:51) [7]

> [4] Steep ©   (20.10.06 10:41)
> бррррррррр ;)
> а можете написать про все попроще..

Купи книгу по языку Делфи. Читай. И да воздастся :)


 
guav ©   (2006-10-20 19:44) [8]


> [6] Anatoly Podgoretsky ©   (20.10.06 12:19)
> Со вторым все одназначно, это оператор взятия адреса,

Не всегда :-)
function EnterReaderModeHelper(Wnd: HWND): BOOL; stdcall;
var EnterReaderModeHelper: function(Wnd: HWND): BOOL; stdcall;
begin
 @EnterReaderModeHelper := GetProcAddress(
   GetModuleHandle(user32), "EnterReaderModeHelper");
 if Assigned(EnterReaderModeHelper) then
   Result := EnterReaderModeHelper(Wnd)
 else
   Result := False;
end;

Здесь он не берёт адрес переменной EnterReaderModeHelper.


 
Ketmar ©   (2006-10-20 19:49) [9]

>[8] guav(c) 20-Oct-2006, 19:44
>Здесь он не берёт адрес переменной EnterReaderModeHelper.
да? точно-точно? а зачем тогда оно там, и что оно там делает?


 
Ученик чародея.   (2006-10-20 19:59) [10]

>>http://diamail.com.ua/cgi-bin/annot.cgi?id=1015

И только после этого садится за Delphi с книжкой кого-то более серьезного.


 
guav ©   (2006-10-20 20:00) [11]


> а зачем тогда оно там, и что оно там делает?

Да незачем ! Убрал и всё равно работает.

Оно просто указывает применение указателя на функцию как указатель а не как вызов функции.


 
Ketmar ©   (2006-10-20 20:09) [12]

>[11] guav(c) 20-Oct-2006, 20:00
>Оно просто указывает применение указателя на функцию как
>указатель а не как вызов функции.
фраза ужасная. но "арименение как указатель" -- это разве (в данном случае) не взятие адреса?


 
guav ©   (2006-10-20 20:26) [13]


> но "арименение как указатель" -- это разве (в данном случае)
> не взятие адреса?

Нет.
0. Без этого оператора код компилится и работает точно так же.
1. Что бы по-твоему означало выражение со взятием адреса в левой части оператора присвоения ?
2. Зачем по-товему здесь брать адрес переменной-указателя, если требуется изменить то куда указатель указывает, т.е. значение указателя.


> фраза ужасная.

Да и код не шибко хороший, особенно после того как убрать собаку. Такой же запутанный :-)


 
Ketmar ©   (2006-10-20 21:08) [14]

>[13] guav(c) 20-Oct-2006, 20:26
>0. Без этого оператора код компилится и работает точно так
>же.
syntactic sugar. такой же, как необязательность "^".

>1. Что бы по-твоему означало выражение со взятием адреса в
>левой части оператора присвоения ?
таки запись по взятому адресу, ага?

>2. Зачем по-товему здесь брать адрес переменной-указателя,
>если требуется изменить то куда указатель указывает, т.е.
>значение указателя.
ты можешь не верить, но запись по "адресу переменной-указателя" модифицирует эту переменную.


 
TUser ©   (2006-10-20 22:26) [15]

А все-таки, что подразумевал Анатолий? В контексте [8], имхо, Ketmar прав.


 
guav ©   (2006-10-20 22:29) [16]


> [14] Ketmar ©   (20.10.06 21:08)


> таки запись по взятому адресу, ага?

Если запись по взятому адресу, следовало бы разыменование, а т.к. его нет получается запись взятого адреса. Сначала его взяли, а потом записали вместо взятого что-то ещё - спрашивается зачем брали.

Нет, @ здесь не взятие адреса, а приведение типа.


 
Пользователь   (2006-10-21 12:07) [17]

The @ operator returns the address of a variable, or of a function, procedure, or method; that is, @ constructs a pointer to its operand. For more information about pointers, see Pointers and pointer types. The following rules apply to @.

- If X is a variable, @X returns the address of X. (Special rules apply when X is a procedural variable; see Procedural types in statements and expressions.) The type of @X is Pointer if the default {$T–} compiler directive is in effect. In the {$T+} state, @X is of type ^T, where T is the type of X.
- If F is a routine (a function or procedure), @F returns F’s entry point. The type of @F is always Pointer.
- When @ is applied to a method defined in a class, the method identifier must be qualified with the class name. For example, @TMyClass.DoSomething, points to the DoSomething method of TMyClass. For more information about classes and methods, see Classes and objects.


 
Ketmar ©   (2006-10-21 17:57) [18]

>[17] Пользователь 21-Oct-2006, 12:07
изыди. не мешай флудить.



Страницы: 1 вся ветка

Текущий архив: 2006.11.05;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.029 c
3-1157904227
так себе
2006-09-10 20:03
2006.11.05
Подредактируйте запрос


2-1161086373
RebroFF
2006-10-17 15:59
2006.11.05
Разделение прав и компоненты Delphi


2-1161516128
m-kirill-2003
2006-10-22 15:22
2006.11.05
Медиаплеер на Delphi


15-1161073849
Kolan
2006-10-17 12:30
2006.11.05
Макросы в BDS2006


2-1161083044
vitv
2006-10-17 15:04
2006.11.05
WindowState-wsMaximized-альтернатива.