|
_Pragma(), етить ее!, как в нее всунуть значение с кавычками? |
|
|
|
Jul 4 2007, 21:54
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Имеем: Код #pragma segment = "INT_HANDLERS" #pragma location = "INT_HANDLERS" В задачнике спрашивается, как это засунуть в _Pragma(), чтобы использовать внутри #define? Ведь _Pragma() сама хочет свой аргумент видеть в кавычках. Голову сломал.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
 |
Ответов
(1 - 5)
|
Jul 4 2007, 22:05
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Сергей Борщ @ Jul 5 2007, 00:54)  Голову сломал. Смотрю решил сделать порт на STR71x ??? Удивил  , не ожидал от тебя: #define I_LOC _Pragma( "location=\"INT_HANDLERS\"" ) как и printf( "Hello from \"Hell\"! " );
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 4 2007, 22:48
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(zltigo @ Jul 5 2007, 01:05)  Смотрю решил сделать порт на STR71x ??? Угу, его и мучаю. Ты был прав - мама дорогая, до чего же кривой контроллер прерываний! Цитата(zltigo @ Jul 5 2007, 01:05)  не ожидал от тебя: И правда, прошло. Просто вчера, когда с паковкой возился пытался сделать что-то похожее (передать аргумент #define внутрь _Pragma("pack (push, N)" и ничего не получилось. Вот и решил, чо тут по аналогии будет ж будут те же грабли.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jul 5 2007, 09:23
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Сергей Борщ @ Jul 5 2007, 01:48)  вчера, когда с паковкой возился пытался сделать что-то похожее (передать аргумент #define внутрь _Pragma("pack (push, N)" и ничего не получилось. Ну тут отцы-основатели недоделали ##  могли-бы 'правильно' склеивать строки а не в рассчете, например, на printf() который сам потом доклеит. Тогда-бы и вещи типа: Код #define PPP(x) _Pragma( "pack (push,"###x##")" работали-бы на ура. Натыкался тоже уже однажды на подобное неудобство
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 5 2007, 10:14
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(zltigo @ Jul 5 2007, 12:23)  Ну тут отцы-основатели недоделали ##  Или решение есть, но мы его пока не знаем. На этом считаем исходную тему исчерпавшей себя. Закрываю. Обсуждение _Pragma("pack(push, N")) продолжаем в другой ветке.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jul 5 2007, 10:48
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Сергей Борщ @ Jul 5 2007, 13:14)  Или решение есть, но мы его пока не знаем. Решения нет, ибо подстановки в стрингах, естествено, не работают, а предусмотренный для обхода такого механизм склеивания литералов, как я уже писал, слишком примитивно работает при склеивании строк  . Вот на этой безрадостной ноте и можно закрыть  .
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|