int printf (const char* format, ... );
这是 printf 的签名。我不明白的是, printf 如何知道第一个参数的长度(const char* format
)。
它知道开始(因为它是一个指针,我明白了),但指针没有结束之类的。通常当你想打印一些东西时,你必须给出一个长度(例如,Linux 的sys_write
)那么 printf 是怎么知道的呢?
编辑:
我一直在查看我在 ASM 中编写的代码,我认为它只是在寻找一个\0
字符。那是对的吗?