小编Bob*_*Bob的帖子

C++ 和类型 size_type

以下代码片段无法编译:

#include <vector>
#include <string.h>
#include <cstddef.h>
#include <stddef.h>

using namespace std;
vector<int> list1{1,3,5,7,11};
size_type s1 = list1.size();
Run Code Online (Sandbox Code Playgroud)

我正在使用 Microsoft Visual Stdio,但我不希望它依赖于编译器。我相信问题是我未能包含正确的标头。我应该包含什么标题?

鲍勃

c++ stl visual-studio

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

GCC和乘法指令

我在cygwin下的Windows 7机器上以32位模式使用GCC.我有以下功能:

  unsigned f1(unsigned x, unsigned y)
  {
      return x*y;
  }
Run Code Online (Sandbox Code Playgroud)

我希望代码执行无符号乘法,因此我希望它生成mul指令,而不是imul指令.我用以下命令编译程序:

 gcc -m32 -S t4.c
Run Code Online (Sandbox Code Playgroud)

生成的汇编代码是:

     .file   "t4.c"
     .text
     .globl  _f1
     .def    _f1;    .scl    2;  .type   32; .endef
_f1:
     pushl   %ebp
     movl    %esp, %ebp
     movl    8(%ebp), %eax
     imull   12(%ebp), %eax
     popl    %ebp
     ret
    .ident  "GCC: (GNU) 4.8.2"
Run Code Online (Sandbox Code Playgroud)

我相信生成的代码中有错误的乘法指令,但我发现很难相信GCC有这么简单的错误.请评论.

c x86 gcc

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

标签 统计

c ×1

c++ ×1

gcc ×1

stl ×1

visual-studio ×1

x86 ×1