Главная страница
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.063 c
4-1143738791
mlm68
2006-03-30 21:13
2006.11.05
Как сделать программное безопасное извлечение флешки?


2-1161604152
gidd
2006-10-23 15:49
2006.11.05
Копирование по сети


6-1150160343
anton773
2006-06-13 04:59
2006.11.05
большой размер файла


15-1160968658
Slider007
2006-10-16 07:17
2006.11.05
С днем рождения ! 14 октября


2-1161504507
SerJaNT
2006-10-22 12:08
2006.11.05
Подстрока в строке