小编jrh*_*4xb的帖子

指针作为C函数中的参数

在很多例子中我读过一个简单的getListLength()函数看起来像这样:

int getListLength(struct node *head)
{
    struct node *temp = head;
    int iCount = 0;

    while (temp)
    {
        ++iCount;
        temp = temp->next;
    }

    return iCount;
}
Run Code Online (Sandbox Code Playgroud)

让我感到不必要的是声明一个复制传递参数的本地指针(在本例中为*temp).如果我没记错,传递的参数会获得自己的副本.因此,不需要复制*head的本地指针只是因为*head本身就是一个副本,对吗?换句话说,丢弃*temp指针并在任何地方使用head是正确的吗?

c pointers linked-list

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

为什么使用临时寄存器将值传递给段寄存器?

我一直在关注编写汇编的几个例子,他们使用临时寄存器将立即值传递给段寄存器.为什么在将其置于段寄存器之前需要将其置于某个寄存器中?
例:

movw $0x7c00, %ax
movw %ax, %ds
...
...
movw $0x6000, %ax
movw %ax, %ss
Run Code Online (Sandbox Code Playgroud)

为什么不直接把直接放在段寄存器中?

movw $0x7c00, %ds
...
movw $0x6000, %ss
Run Code Online (Sandbox Code Playgroud)

x86 assembly gnu-assembler

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

标签 统计

assembly ×1

c ×1

gnu-assembler ×1

linked-list ×1

pointers ×1

x86 ×1