我可以在 g++ 中将对象的地址作为字符串常量获取吗?例子:
struct s { } x;
如果&x == 1234
,那么我需要"1234"
在我的代码中。
编辑:
字符串常量是指我在编译或链接时需要该常量字符串。我需要将它嵌入到这样的内联汇编代码中:
template < typename U >
struct T {
static int x;
void f () {
asm (".word " some-expression-containing-(&x));
}
};
我不知道用预处理器宏构造损坏名称的方法,所以我问了这个问题。
解决方案不需要是可移植的,g++就足够了。
该地址本身在编译或链接时是已知的,因为它可以检查汇编输出并将损坏的名称放入内联汇编指令中。