如何通过在 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() 函数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

openGL获取键盘输入的问题

如何写一个输入数字后输出对应数字拼音的c语言程序

C语言里删除数组怎么删除

c语言中case后可以跟字符么,如case +:printf("...")

c++编程中语句太长如何换行

[Error] expected expression before','token 是啥意思?