我想使用定义
来构思以下字符串#define LOG_FLOAT_MARKER "%s%d.%010d"
到目前为止我已经
了 #define EXP (10)
#define LOG_FLOAT "%s%d.%0"
#define D "d"
我正在尝试创建一个像这样的字符串
#define LOG_FLOAT_MARKER LOG_FLOAT EXP D
但没有得到预期的输出,有些提示?
答案 0 :(得分:4)
(10)
您不能拥有EXP
,因为您不希望括号成为结果的一部分。
你必须使用字符串化和一些跳跃:
#define EXP 10
#define JOIN(a, b, c) a #b c
#define JOIN2(a, b, c) JOIN(a, b, c)
#define LOG_FLOAT_MARKER JOIN2(LOG_FLOAT, EXP, D)
另外,我认为使用名为D
的预处理程序符号会遇到麻烦。
答案 1 :(得分:1)
我不确定我是否理解你要做的事情。您可能正在寻找viewController
说明符:
*
有关printf( "%s%d.%0*d", "string", 1, 1, 1 ); // output: string1.1
printf( "%s%d.%0*d", "string", 1, 2, 2 ); // output: string1.02
printf( "%s%d.%0*d", "string", 1, 3, 3 ); // output: string1.003
的完整说明,请参阅this。