小编小太郎*_*小太郎的帖子

`dword ptr'是什么意思?

有人能解释这意味着什么吗?(英特尔语法,x86,Windows)

and     dword ptr [ebp-4], 0
Run Code Online (Sandbox Code Playgroud)

x86 assembly pointers dword

111
推荐指数
3
解决办法
13万
查看次数

使用基于范围的for循环时需要迭代器

目前,我只能使用以下方法进行基于范围的循环:

for (auto& value : values)
Run Code Online (Sandbox Code Playgroud)

但有时我需要一个值的迭代器,而不是一个引用(无论出于何种原因).是否有任何方法无需通过整个矢量比较值?

c++ iterator for-loop c++11

81
推荐指数
3
解决办法
4万
查看次数

"enter"vs"push ebp; mov ebp,esp; sub esp,imm"和"leave"vs"mov esp,ebp; pop ebp"

enter和之间的区别是什么?

push ebp
mov  ebp, esp
sub  esp, imm
Run Code Online (Sandbox Code Playgroud)

说明?是否存在性能差异?如果是这样,哪个更快,为什么编译器总是使用后者呢?

以相若方式将leave

mov  esp, ebp
pop  ebp
Run Code Online (Sandbox Code Playgroud)

说明.

assembly stack

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

获取std :: string的字符串的大小(以字节为单位)

我想得到字节a std::string的字符串占用内存,而不是字符数.该字符串包含多字节字符串.会std::string::size()为我做到这一点?

编辑:此外,size()还包括终止NULL

c++ string multibyte

21
推荐指数
4
解决办法
3万
查看次数

static_assert可以检查类型是否为向量?

static_assert可以检查类型是否为向量?IE,一个int会提出断言,而一个vector<int>不会.
我正在考虑以下方面的事情:

static_assert(decltype(T) == std::vector, "Some error")
Run Code Online (Sandbox Code Playgroud)

c++ static-assert c++11

18
推荐指数
2
解决办法
6133
查看次数

匿名枚举类

有可能编写一个匿名枚举类,然后比较它包含的内容吗?例如.

enum class { APPLE, BANANA } fruitType;
// ...
if (fruitType == fruitType::APPLE)
    // ...
Run Code Online (Sandbox Code Playgroud)

c++ enums c++11

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

匿名命名空间内的"using namespace"语句

using namespace匿名命名空间内使用语句时,将使用的命名空间带入文件范围?例如:

namespace foo
{
    int f() { return 1; }
}
namespace
{
    using namespace foo;
}
int a()
{
    return f(); // Will this compile?
}
Run Code Online (Sandbox Code Playgroud)

c++ namespaces

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

我们如何将FILE*转换为HANDLE?

有没有转换开放的任何地方FILE*,从返回fopenHANDLE是在Windows API函数使用?如果是这样,怎么样?

c winapi file

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

获取主可执行文件的ELF头

出于各种目的,我试图在不解析的情况下获取主可执行文件的ELF头的地址/proc/self/maps.我尝试解析/ functions link_list给出的链,但它们不包含指向主可执行文件基址的条目.有没有办法做到这一点(标准与否)没有解析?dlopendlinfol_addr/proc/self/maps

我正在尝试做的一个例子:

#include <stdio.h>
#include <elf.h>
int main()
{
    Elf32_Ehdr* header = /* Somehow obtain the address of the ELF header of this program */;
    printf("%p\n", header);
    /* Read the header and do stuff, etc */
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c c++ linux elf

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

在基于范围的for循环内擦除容器中的元素

我想从当前在基于范围的for循环中使用的容器中擦除元素.这会导致未定义的行为吗?或者,如果我没有调用,那么elementafter 的下一个值是erase()下一个元素应该是什么erase()

例:

std::map<int, int> someMap;
/* Fill in someMap */
for (auto& element : someMap)
{
    /* ... */
    if ( /* Some condition */ )
        someMap.erase(element.first);
}
Run Code Online (Sandbox Code Playgroud)

c++ for-loop c++11

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

标签 统计

c++ ×7

c++11 ×4

assembly ×2

c ×2

for-loop ×2

dword ×1

elf ×1

enums ×1

file ×1

iterator ×1

linux ×1

multibyte ×1

namespaces ×1

pointers ×1

stack ×1

static-assert ×1

string ×1

winapi ×1

x86 ×1