6

我正在学习安全课程,但由于对 C 编程语言缺乏了解,我无法理解这段代码。

printf  ("%08x.%08x.%08x.%08x|%s|");

有人告诉我,这段代码应该沿着堆栈移动,直到找到指向函数的指针。

我认为这.只是输出精度的一个指标,所以我不知道这在这种情况下意味着什么,因为有精度指标?

另外,我不明白这是什么|意思,在 C 文档中也找不到。

4

2 回答 2

6

这些符号在这里没有特殊含义,因为它们在格式说明符之外,它们只是按字面意思输出。但是请注意,您没有提供 printf 期望的所有参数,因此它将打印 5 个恰好在堆栈上的值。

于 2013-01-12T23:22:21.543 回答
2

在这个字符串中。和 | 字符只是输出。这些点充当十六进制字符串的分隔符,管道突出显示字符串。

只有出现在 % 符号之后和格式说明符之前的点才被视为岁差指示符,例如%4.2f.

于 2013-01-12T23:23:28.873 回答