如何通过在 printf("%ex",test()) 中定义新标识符在 C 中打印布尔类型来启用 printf() 函数? [复制]
Posted
技术标签:
【中文标题】如何通过在 printf("%ex",test()) 中定义新标识符在 C 中打印布尔类型来启用 printf() 函数? [复制]【英文标题】:How to enable printf() function from printing Boolean types in C with defining new identifier in printf("%ex",test())? [duplicate] 【发布时间】:2015-07-03 23:15:56 【问题描述】:我正在尝试向 printf() 函数添加新标识符以启用打印“true”和“false”.. 例如:printf("%boolean",test());这在 c 中可能吗?
#include<stdio.h>
typedef int boolean;
#define true 1
#define false 0
boolean test(int x)
return x%2==0?1:0;
int main()
printf("%s",test(5));
system("pause");
return 0;
【问题讨论】:
对于本土转换说明符,尤其是看到这个答案:***.com/a/22114373/694576 我想编辑(覆盖)printf() 函数,将新的标识符添加到它的基本标识符(“%s”、“%d”、“%test”)!我不想用三元运算符,我已经知道了。 请参阅我上面链接的答案中指定的链接(因为“GNU C 库提供了用于添加自定义说明符的 API”)。 是的,非常感谢@alk 先生。你的回答很有帮助。 【参考方案1】:改变
printf("%s",test(5));
到
printf("%s",(test(5))?"true":"false");
如果test(5)
返回非零整数,则告诉%s
打印"true"
,如果test(5)
返回0,则告诉"false"
。
【讨论】:
以上是关于如何通过在 printf("%ex",test()) 中定义新标识符在 C 中打印布尔类型来启用 printf() 函数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章