【发布时间】:2015-11-29 23:22:24
【问题描述】:
我在这里查看 errno.h 的源代码: http://unix.superglobalmegacorp.com/Net2/newsrc/sys/errno.h.html
说明errno被声明为extern,我们在使用errno的时候可以直接给它赋值。就是说errno是在别的地方定义和分配的,到底是在哪里定义的?
【问题讨论】:
-
相同的答案:
printf被声明(隐式为 extern),我们可以调用它,那么它在哪里定义? -
它可能像在实际存储中一样被分配在线程堆栈头中。它的“位置”是操作系统/架构定义的,因为它必须是特定于线程的,所以堆栈头似乎是操作系统放置它的明显位置。