【发布时间】:2012-11-30 06:33:14
【问题描述】:
我正在阅读the code for _start as packaged with FreeBSD,我对我所看到的一些特别的东西感到好奇。第 61 行将 char** 转换为 void*,然后立即转换为 long*。我见过a similar StackOverflow question,但它不适用于这里,因为所有指针的大小都相同。谁能告诉我为什么这条线投了两次而不是一次?
【问题讨论】:
-
在这种情况下,转换为
(void*)是没有用的。 -
这个文件如果不是被 GCC 编译的话会报错,它位于一个名为“amd64”的目录中,并且里面有内联汇编。我认为引用该标准的任何答案在这里都不会完全有意义。我也看不出为什么在这个例子中应该有
void *的演员表。