C++のprintfで作る時にキーのダブルクオーテーションをエスケープするのは見づらいと思っていた。
例:
snprintf(buf, sizeof(buf), "{\"MMA7660\":{\"x\":%.2f,\"y\":%.2f,\"z\":%.2f}}", x, y, z);
しかし、マクロを使うことで少しは見やすくなります。
#define qq(...) #__VA_ARGS__ snprintf(buf, sizeof(buf), qq({"MMA7660":{"x":%.2f,"y":%.2f,"z":%.2f}}), x, y, z);
複数行に書くことも出来ます。
#define qq(...) #__VA_ARGS__ snprintf(buf, sizeof(buf), qq( { "MMA7660": { "x":%.2f, "y":%.2f, "z":%.2f } } ), x, y, z);
今のところ、うまく動いているが何か副作用があるかもしれない。
参考:
C でヒアドキュメントごっこ
(2013/2/24)
---
0 件のコメント:
コメントを投稿