Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.075 c
11-1137545458
-=Mike=-
2006-01-18 03:50
2006.11.05
Обработка исключений


1-1159031806
GrayFace
2006-09-23 21:16
2006.11.05
Доступ к property в asm вставках


2-1161577376
reiler
2006-10-23 08:22
2006.11.05
сложный Update для таблиц FoxPro не проходит


6-1150176235
piople
2006-06-13 09:23
2006.11.05
Поиск по ftp сервера


15-1161205288
juice
2006-10-19 01:01
2006.11.05
Программирование контроллеров (USB)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский