小编Pro*_*unt的帖子

string.empty和string [0] =='\ 0'之间的区别

假设我们有一个字符串

std::string str; // some value is assigned
Run Code Online (Sandbox Code Playgroud)

str.empty() 和之间有什么区别str[0] == '\0'

c++ string

63
推荐指数
4
解决办法
8254
查看次数

为什么汇编代码对于具有不同gcc版本的简单C程序是不同的?

我正在理解汇编和c编程的基础知识.

我用C编译了以下简单程序,

#include <stdio.h>

int main()
{
  int a;
  int b;
  a = 10;
  b = 88

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

用以下命令编译,

gcc -ggdb -fno-stack-protector test.c -o test

上面程序与gcc版本4.4.7的反汇编代码是:

5                      push   %ebp
89 e5                   mov    %esp,%ebp
83 ec 10                sub    $0x10,%esp
c7 45 f8 0a 00 00 00    movl   $0xa,-0x8(%ebp)
c7 45 fc 58 00 00 00    movl   $0x58,-0x4(%ebp)
b8 00 00 00 00          mov    $0x0,%eax
c9                      leave
c3                      ret
90                      nop
Run Code Online (Sandbox Code Playgroud)

但是,与gcc版本4.3.3相同程序的反汇编代码是:

8d 4c 23 04     lea     0x4(%esp), %ecx
83 …
Run Code Online (Sandbox Code Playgroud)

c assembly gcc

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

标签 统计

assembly ×1

c ×1

c++ ×1

gcc ×1

string ×1