小编use*_*544的帖子

全局变量是否比C中的局部变量快?

我对此有几点想法.第一个是分配全局变量可能更快,因为它们在程序首次生成时只分配一次,而每次调用函数时都必须分配局部变量.我的第二个想法是,由于局部变量在堆栈上,它们是通过基址指针寄存器访问的,因此每次访问局部变量时,必须递减存储在基址指针中的值.全局变量可以通过数据段中的静态地址直接访问.我的想法准确吗?

c variables scope global-variables lifetime

4
推荐指数
1
解决办法
1899
查看次数

ld链接器错误 - 体系结构x86_64的未定义符号

我正在尝试链接组装的单模块汇编语言程序yasm,我从以下错误中得到以下错误ld:

Undefined symbols for architecture x86_64:
  "start", referenced from:
     implicit entry/start for main executable
     (maybe you meant: _start)
ld: symbol(s) not found for inferred architecture x86_64
Run Code Online (Sandbox Code Playgroud)

我实际上是半定期得到这个错误,所以我想这是一个相当普遍的问题,但不知怎的,似乎没有人有一个满意的答案.在有人说这是前一个问题的副本之前,是的,我知道.正如你可以看到类似标题问题的巨大文本墙,看到这是重复的,我也可以.

编译器错误:架构x86_64的未定义符号

不适用于我的问题.我不是用C++编写的,并且在那个问题中给出的解决方案对于那种语言来说是特殊的.

编译C程序时体系结构x86_64的未定义符号

也没有解决我的问题,因为我不是试图将多个目标文件链接在一起.

错误架构x86_64的未定义符号:

解决方案与高级语言中的特定框架有关.

编译器错误:架构x86_64的未定义符号

解决方案涉及修复函数原型.由于明显的原因,这里不适用.

......你明白了.我能找到的每一个过去的问题都是通过一些不适用于我的情况的特殊方法来解决的.

请帮我解决一下这个.我已经厌倦了一次又一次地得到这个错误而无法对它做任何事情,因为它的记录很差.恕我直言世界迫切需要一个GNU Dev Tools等效的MS-DOS错误代码参考手册.

附加信息:

操作系统:Mac OS X El Capitain

来源清单:

segment .text
global _start

_start:
    mov     eax,1   ; 1 is the syscall number for exit
    mov     ebx,5   ; 5 is the value to return
    int     0x80    ; execute a system …
Run Code Online (Sandbox Code Playgroud)

macos x86 assembly linker x86-64

1
推荐指数
1
解决办法
2047
查看次数

标签 统计

assembly ×1

c ×1

global-variables ×1

lifetime ×1

linker ×1

macos ×1

scope ×1

variables ×1

x86 ×1

x86-64 ×1