1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
| мисс_граффити |
5.10.2006 14:52
Сообщение
#1
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
Есть кусок кода из делфёвой проги:
Posref = ^Position; //Тип: указатель на позицию Как можно что-то аналогичное сделать? Больше всего интересует проблема первых строк. typedef *Leader LRef не проходит (запятой ему не хватает, видите ли... но с запятой же получится совсем не то, что мне нужно?..) Если это как-то делается, то остальное почти не изменится (ну, будет struct Leader и т.д.), а если нет - вообще непонятно.... Потому что если убрать первые 3 строки, а внутри структур заменить Trail2 : Tref на Trailer *Trail1 пишет, что тип не указан. Если эти структуры поменять местами, чтобы везде упоминались только описанные выше - говорит, что "too many types". В общем, это... Хелп, плз. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
![]() ![]() |
| volvo |
5.10.2006 23:56
Сообщение
#2
|
|
Гость |
Юля, не путай описание и определение типа, это может привести к очень плохим результатам, особенно в С/С++. Что мы делаем здесь:
typedef struct TLeader {
? Делаем для типа struct TLeader { ... } новое имя: Leader, правда? Точно так же, как и typedef unsigned char byte;определяет новое имя byte для типа unsigned char Теперь, почему нельзя пользоваться таким определением: typedef struct TLeader {
потому, что к тому моменту, как компилятор обрабатывает эту запись, тип Trailer еще не определен, и тип Leader тоже (не встретилась еще завершающая описание точка с запятой). Чтобы можно было показать компилятору, что это будет указатель на структуру, используется предварительное описание (чувствуешь разницу, да?) - указателя на структуру. Все остальное для компилятора неважно, он зарезервирует 4 байта под указатель на структуру, и когда этот тип будет определен (ниже по тексту), свяжет его с этим указателем.С, что поделаешь... |
мисс_граффити Указатель как тип (синтаксис) 5.10.2006 14:52
volvo Не знаю, что в Builder-е, но чистый C в виде TC3.0... 5.10.2006 15:12
мисс_граффити все. Архангельскому не верю напрочь. :mega_chok:
... 5.10.2006 19:30
volvo Не обязательно...
struct TLeader L1 совершенно экв... 5.10.2006 19:33
мисс_граффити запуталась.
Leader - это что? переменная типа TLea... 5.10.2006 23:43
мисс_граффити понятно. больше не буду путать :)
спасибо огромное... 6.10.2006 20:39
мисс_граффити откомпилировалось только в таком варианте:
typedef... 7.10.2006 12:04
volvo Ну, возможно просто конфликт имен (в Builder-е нет... 7.10.2006 12:18
мисс_граффити опять запуталась. в следующем месте...
void WorkPe... 7.10.2006 12:53
volvo Нет... В С++ для обращения к полю структуры есть 2... 7.10.2006 13:04
мисс_граффити Спасибо...
офф. Вся группа накопировала лабы, кот... 7.10.2006 13:18![]() ![]() |
|
Текстовая версия | 9.12.2025 1:07 |