Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> указатель метку на mingv не ++ 
V
    Опции темы
victor79
Дата 21.12.2008, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



а возможно ли какими-либо путями (даже не стандартными) получить указатель на метку?

что-то вроде этого:
printf("%i\n", &label1)
label1:
 
на компиляторе mingv 3.4.5 gcc.exe
PM MAIL WWW   Вверх
vinter
Дата 21.12.2008, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



нет


--------------------
Мой блог
PM MAIL WWW   Вверх
Lazin
Дата 21.12.2008, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



что вы имеете ввиду под словом "метка"?
PM MAIL Skype GTalk   Вверх
victor79
Дата 21.12.2008, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



под словом метка я подразумеваю метки, на которые можно выполнять переход оператором goto
PM MAIL WWW   Вверх
mes
Дата 21.12.2008, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(victor79 @  21.12.2008,  00:43 Найти цитируемый пост)
под словом метка я подразумеваю метки, на которые можно выполнять переход оператором goto 

а что должно получиться в результате этого кода ?
Цитата(victor79 @  21.12.2008,  00:37 Найти цитируемый пост)
printf("%i\n", &label1)




--------------------
PM MAIL WWW   Вверх
victor79
Дата 21.12.2008, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Цитата

а что должно получиться в результате этого кода ?

должен получиться адрес, который можно поместить скажем в регистр eax, а после выполнить call %eax, и получиться... да много что можно из этого получить, скажем сделать более удобный механизм обработки исключений...
А вы знаете что такое "адрес"? я могу и это разьяснить что это такое.

PM MAIL WWW   Вверх
Lazin
Дата 21.12.2008, 01:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(victor79 @  21.12.2008,  00:43 Найти цитируемый пост)
под словом метка я подразумеваю метки, на которые можно выполнять переход оператором goto 

блин, я и забыл что бывают метки, так часто они нужны...

Цитата(victor79 @  21.12.2008,  01:01 Найти цитируемый пост)
должен получиться адрес, который можно поместить скажем в регистр eax, а после выполнить call %eax, и получиться... да много что можно из этого получить, скажем сделать более удобный механизм обработки исключений...
А вы знаете что такое "адрес"? я могу и это разьяснить что это такое.

в Си это в принципе может прокатить, только получить этот адрес можно используя вставку на асме. Только я не пойму несколько вещей.
Чем не устраивают указатели на функции?
Как вы думаете, ваша программа будет продолжать работать после инструкции call?
В си есть механизм обработки исключений?
Что такое адрес?
 smile 
PM MAIL Skype GTalk   Вверх
victor79
Дата 21.12.2008, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Цитата

в Си это в принципе может прокатить, только получить этот адрес можно используя вставку на асме

я пока не нашел способа даже со вставками (си gcc)

Цитата

Чем не устраивают указатели на функции?
Как вы думаете, ваша программа будет продолжать работать после инструкции call?

я хотел сделать макрос, которому указывается метка, и который перейдет на этот адрес при исключении. А если делать на другую функцию, то там уже другое пространство имен - весь смысл теряется - роспуск выделенной памяти.

Цитата

В си есть механизм обработки исключений?

да, но неудобный - макрос, которому в параметр можно передать только указатель на другую функцию...


подумав после еще минутку, понял, что красиво здесь все равно не сделать, решил начать переделывать проект под с++.
переименовал файлы в cpp и компилю - куча ошибок о конвертации типов и необъявленных функциях. Может подскажете, есть ли опция, которая позволит иметь эти вещи синтаксиса си, но компилить в с++?



PM MAIL WWW   Вверх
mes
Дата 21.12.2008, 02:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(victor79 @  21.12.2008,  01:01 Найти цитируемый пост)
А вы знаете что такое "адрес"? я могу и это разьяснить что это такое.

Ну тогда Вы и сами, наверняка, знаете про расширения для gcc и про возможность  на таком компиляторе использовать метки как значения  smile 
или знания на том что такое адрес закончились ? ну тогда на этот случай к примеру можете почить тут :
http://linfoline.homedns.org/gcc27/gcc1-4.html


P.S. ИМХО Вы не с того тона начали свое знакомство на форуме... 





--------------------
PM MAIL WWW   Вверх
victor79
Дата 21.12.2008, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Цитата

Ну тогда Вы и сами, наверняка, знаете про расширения для gcc

нет, этой темы я не знал, хотя примерно про такие расширения и спрашивал
>(даже не стандартными)
как говорится всего знать невозможно, и вы ответили на вопрос быстрее, чем я смог параллельно найти ответ поисковиками - значит правильно делал, что задавал здесь глупые вопросы))). Спасибо.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1066 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.