让我说我有这个宏
#define last(x) printf("%c", #x[last]);
我希望它打印x的最后一个字符,其中x不是字符串。
如何获取x的最后一个字符?有一个简短的方法吗?
int main(){
last(abc);
}
output: c
答案 0 :(得分:4)
答案 1 :(得分:3)
你想要
#define last(x) printf("%c", #x[sizeof(#x)-2]);
(sizeof
为您提供通过字符串化宏参数形成的字符串文字中的字节数,返回一个以获得终止零,返回另一个以获取最后一个字符。)
我真的希望这是有兴趣的,但你并不打算在实际代码中使用它。