Можно ли получить адрес объекта как строковую константу в g ++?Пример:
struct s { } x;
Если &x == 1234
, тогда мне нужно "1234"
в моем коде.
EDIT :
По строковой константе Iозначало, что мне нужна эта постоянная строка во время компиляции или компоновки.Мне нужно встроить его во встроенный ассемблерный код, например:
template < typename U >
struct T {
static int x;
void f () {
asm (".word " some-expression-containing-(&x));
}
};
Я не знаю, как создать искаженное имя с помощью макроса препроцессора, поэтому я задал этот вопрос.
Решение не должно быть переносимым, достаточно g ++.
Сам адрес известен во время компиляции или компоновки, хотя он будет работать для проверки вывода сборки и вставки искаженного имени ввстроенная инструкция по сборке.