【发布时间】:2012-03-14 13:48:11
【问题描述】:
我有一个定义索引类型的代码,这样如果用户知道他们的索引空间保持在普通整数的范围内,他们可以使用int 而不是long int。
#ifdef LONG_IDX
typedef long int idx_type
#else
typedef int idx_type
#endif
我的代码中有一些printf 语句来打印出这个索引数据,我不想将它们包装在到处都是#ifdef 语句中。是否有格式标志来指定参数可能是long int 或int?如果没有,有没有办法定义一个自定义格式标志,我可以简单地添加到我的索引类型定义中?
【问题讨论】:
-
我猜 C++ 对此的回答是停止使用
printf而是使用 cout 样式输出。 -
如果您需要格式字符串,请使用 boost 格式和位置格式说明符
-
您的文字显示为
long int,但您的代码显示为long long int。 -
我相信@Damien_The_Unbeliever。 :)
-
答案取决于这是 C 代码还是 C++ 代码。两者都被标记了。您需要 C 答案吗?