c - printf 如何返回成功打印的字符数?
问题描述
对于以下代码片段:
int a=printf("made,%d,easy",printf("Lucknow"));
printf("%d",a);
我使用 GCC 编译器将 a 的值设为 11,我没有得到这背后的逻辑,printf
返回屏幕上打印的字符数,所以它打印lucknowmade,7,easy
. 因此,我们在屏幕上打印了 18 个字符,所以 a 的值应该是 18,为什么它给 OP 为 11?
请简要说明这一点。
解决方案
代码首先执行printf("Lucknow")
,在屏幕上打印“Lucknow”并将值 7 返回给第二次printf()
调用。第二个printf()
打印“made,7,easy”并返回 11,这是它打印的字符数。它不知道也不关心其他函数做了什么。
推荐阅读
- haskell - 更新并返回字符串列表
- c++ - 我需要帮助为我的零钱计算器解决数学问题
- stream - 如何以阻塞方式有效地提取 futures::Stream 的第一个元素?
- python - Python:为什么这两个赋值会导致不同的结果?
- android - Androidx RecyclerView GridLayoutManager 无法转换为 LayoutManager
- c - C 到 MIPS 的翻译:冒泡排序
- ravendb - 仅当值尚不存在时,如何将值添加到集合中?
- c# - 将 .res 文件作为本机 win 32 资源嵌入到 c# 应用程序中
- string - String.split 没有在 Kotlin 中编译?
- javascript - 将 $(document.on('click' 与多个选择器一起使用并检查是否触发了一次单击?