RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-216371

selya's questions

Martin Hope
selya
Asked: 2020-07-10 10:47:01 +0000 UTC

c++中的函数是什么

  • 1

我昨晚在写代码,犯了一个错误。我需要将指向所需函数的指针写入进程的虚拟内存。我是这样做的:

uint64_t *some_mapped_memory = ...;
some_mapped_memory[0] = reinterpret_cast<uint64_t>(myFunc);

错误是我没有把&函数名放在前面。而且被触摸的不是指针,而是“函数本身”。但是,此代码按预期工作。

而且,后来我做了一个测试:

#include <cstdio>

void f() {}

int main() {
    void (*fnc1)() = f;
    void (*fnc2)() = &f;
    printf("%p %p\n", f, &f);
    return 0;
}

它不仅printf输出了两个相同的值,而且上面的代码编译没有问题。

我用谷歌搜索了一下,但没有找到任何关于此的内容。老实说,我手头没有gcc任何其他编译器,我用visual c++. 标准对我的代码有何看法?好吧,它必须在另一个编译器上工作,还是只有效&f?为什么我的开发环境显示fnc1两者fnc2都是void(*)(),但是auto fnc3 = f是void()?

总的来说,我展示的是标准描述的某种邪恶智能转换,还是可以的邪恶智能转换visual c++?

c++
  • 1 个回答
  • 10 Views
Martin Hope
selya
Asked: 2020-05-02 20:48:05 +0000 UTC

构建通用 C# 应用程序

  • 3

我最近给自己做了一个发现——在构建.NET应用程序的时候,我可以选择目标平台的位深度。在互联网上阅读很有用,我所理解的只是我什么都不懂。

我自己是javaanist。从小我就认为收藏什么不重要,重要的是比特深度jvm。但在这里,显然,一切都不同了......

请帮我解决这个问题:

您需要构建一个使用第三方c++库的应用程序。-bit -ki32也可用于库。该应用程序不需要超强性能,因此-bit 版本将适合我。64.dll32

32我可以仅使用-bit将我的项目构建为32-bit.dll并期望整个事情在32-bit 和64-bit 系统中都可以工作吗?如果没有,最好的方法是什么?

还有几个小问题可以帮助我理解我在做什么:

64为位系统构建的应用程序.NET是否无法在位系统上运行32,或者它与原生应用程序的工作方式略有不同?

我是否正确理解为不同位深度的系统构建的应用程序在不同的虚拟机上运行,​​因此在64-bit 版本上安装了两个位深度的windows虚拟机?CLR

c#
  • 1 个回答
  • 10 Views
Martin Hope
selya
Asked: 2020-04-18 12:53:20 +0000 UTC

PC工作“在梦中”

  • 1

我需要用我的家用 PC 制作类似迷你服务器的东西来满足我的需要。然而,由于 电脑在卧室里,我不希望它一直嗡嗡作响。

我记得在睡眠模式下,RAM 是通电的。同时,处理器可以执行最少的工作(?)。

我需要做的就是解析简单的小数据包并发回响应(或者在需要完成繁重的工作时唤醒 PC。是的,由于某种原因,简单的局域网唤醒不起作用)。

有什么办法可以让电脑在睡眠中执行代码?或者至少每隔一段时间醒来,执行代码并入睡?(它是否以某种方式 Windows 用于他们的更新)。

пк
  • 1 个回答
  • 10 Views
Martin Hope
selya
Asked: 2020-03-23 00:38:33 +0000 UTC

关于多线程的几个问题

  • 3

我自己已经用 java 写了很多年了,但只是作为一种爱好,我不必经常使用多线程。

有几个问题很有趣,即:

  1. 假设我需要在某个对象(来自不同线程)上编写和读取原始类型。假设这些字段是打开的 ( public)。

    根据java帮助,读写引用的操作是原子的(逻辑上,因为这种引用的大小通常放在一个处理器寄存器中,系统支持)。然后读取和写入存储对对象的引用的字段是在不同线程中执行的完全正常的操作。

    此外,java 帮助确保读取和写入基本类型(不包括longand double)也是原子的。但是这两个呢?据我了解,它们只需要标记为volatile. 但是是否有任何副作用,或者这个修饰符只是保证了对变量的操作的原子性?

    好的。现在,例如,我想通过 getters-setter 读取和写入字段。如果我的 getter-setter 不改变任何外部数据的状态,而只是读取和写入一个变量,我是否足以将这样的变量标记为volatile,或者我应该将 getter/setter 标记为syncronized?(前提是只能通过 getter 和 setter 访问变量)。

  2. 处理对象。具体来说,对于不改变状态的对象。

    例如,String。据我所知,这种类型永远不会改变 state,它所有返回字符串的方法都会返回一个新实例。

    那么,我可以在没有额外同步的情况下从不同的线程访问这样的对象吗?或者我可能会错过一些东西(当我只能获取对象但不能更改引用它的字段的值时的问题)。

感谢可以回答这些问题的人的耐心)

java
  • 1 个回答
  • 10 Views
Martin Hope
selya
Asked: 2020-03-08 05:27:28 +0000 UTC

C++、C 和 abs 函数

  • 4

那么,代码如下:

#include <iostream>

int main() {
    std::cout << abs(4.1) << std::endl;
    return 0;
}

(特地展示了夹杂物,这里就不说了cmath)。

手头只有Windows。

我们用微软的编译器收集。结论:

4.1 

使用 g++ (MinGW) 构建。结论:

4

好吧,什么都不清楚。

让我们连接起来<cmath>。没有什么变化...

我们连接<math.h>。现在在两个编译器上一切都很好。

好的。让我们认为,默认情况下,c-shnaya以某种方式使用abs,与 int 一起操作(对于 g++)。重写代码:

#include <iostream>

int main() {
    std::cout << fabs(4.1) << std::endl;
    return 0;
}

结论cl:

4.1

g++ 输出:

А фиг вам, <cmath> подключить не хотите-ли?

g++ 输出(连接后<cmath>):

4.1

万岁!

所以,说:

为什么我可以abs在不连接任何东西的情况下使用 - 我明白。我把它打开了<iostream>,这意味着 - 和<stdlib.h>。但是为什么不同的编译器会有这样的差异呢?感觉就像微软的编译器连接到某个地方<math.h>......

顺便一提。问题是关于c-functions的使用abs。我std::abs没有注意到任何问题。

c++
  • 1 个回答
  • 10 Views
Martin Hope
selya
Asked: 2020-03-02 16:58:06 +0000 UTC

c++ 中的命名约定

  • 0

由于 C++ 中对于各种实体的命名没有既定的约定,所以每个人都选择自己的方式。但是,您应该始终在整个项目中使用相同的命名约定。

但是,我的问题是:如果我编写的代码不仅需要我自己支持,那么包含的库呢?例如,如果我包含 ,box2d其中类以前缀 开头b2,方法都以大写字母开头,而我更喜欢java-style - 类以大写字母开头,方法以小写字母开头,那我该怎么办?

如果它是一个游戏引擎,并且我希望物理类不是内部的,而是对用户可见,该怎么办?在项目中使用具有其他命名约定的库是一种不好的形式。那又如何呢?使用typedef?那么函数呢?

你怎么看待这件事?在这种情况下你会如何处理?

c++
  • 1 个回答
  • 10 Views
Martin Hope
selya
Asked: 2020-11-28 11:37:07 +0000 UTC

从点找到矩形的最大高度

  • 2

有以下计划的任务:有一定数量的点形成类似矩形的东西。但是,它不沿轴定向(不是 AABB)。任务是找到一个向量,该向量将以与条件矩形的大高度相同的方式定向。

想到的唯一解决方案是通过矩形的条件中心绘制一条直线,然后对于一侧的点,我们执行以下操作:找到与中心的距离,将其平方。对这些值求和。我们在直线的另一边做同样的事情。然后我们画另一条线,已经在不同的角度。

我们执行第 N 次操作,直到找到一条直线,这条直线两侧的点的权重之和最大。

为什么我不喜欢这种方法?事实并非如此,它会正常工作,而且我也被迫执行这些操作 N 次,而且越多 - 越准确,因此它太昂贵了。可以做些什么来以更少的努力找到向量?

алгоритм
  • 2 个回答
  • 10 Views
Martin Hope
selya
Asked: 2020-10-20 00:55:40 +0000 UTC

硬件和操作系统功能

  • 9

请澄清一些我将在下面描述的事情。我读了很多关于系统如何启动、硬件执行什么功能、系统做什么的信息,但到目前为止我还不能把全貌加起来。

所以。据我了解,当系统启动时,bios 首先被唤醒。他检查所有硬件,进行诊断。当他确定一切正常时,他从磁盘读取前 512 个(不确定)字节,检查 2 个“魔法”字节,如果他们说这个磁盘是可引导的,那么 bios 开始执行引导加载程序代码,即 . 那510个字节。同时,它并不是立即开始执行,而是将它们写入到RAM中的某个地址后才开始执行。一切似乎都清楚了。以及处理器如何寻址内存——逐页——似乎也很清楚。

现在我不清楚的是:假设我启动了 linux。磁盘加载程序拾取 grub,grub 加载内核,内核开始执行。好的。但是内核如何寻址内存呢?结果直接物理?好吧,即 没有虚拟。然后是另一个问题。事实证明,所有寻址虚拟内存的用户空间代码都在内核的某个“沙箱”中执行,这允许您将虚拟地址转换为物理地址?还是有某种处理器机制?uefi 是如何工作的?

总的来说,我感兴趣的是处理器提供了哪些功能,实际上是一般的硬件,以及在系统级实现了什么,如果可能的话,它为什么这样工作。

是的,处理器如何与视频卡等各种硬件通信,以及它提供哪些接口以编程方式控制该硬件也很有趣。

linux
  • 2 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5