我正在网上阅读以下代码。我想知道函数调用旁边的@符号是什么意思。我也想知道.type究竟是做什么的。有人能指出我解释不同.types的网址吗?
process.argv
答案 0 :(得分:0)
“。type”关键字会将一些信息放入生成的目标文件中,说“someRelocations”属于STT_FUNC类型(这意味着:它是一个函数)。
链接器和/或调试器可能会使用此信息。在某些CPU(例如支持Thumb和ARM模式的ARM变体)上,链接器必须知道“someRelocations”是函数还是变量,因为在这种情况下,函数和变量的链接有点不同。
对于汇编程序,“@”此时只是一个常规字符。 “puts @ PLT”由汇编程序处理,与处理“putsXPLT”的方式相同。
非常准确:当生成与位置无关的文件时,链接器需要将“@PLT”添加到所有函数名称。