我正在使用 gcc 来测试 float 到 unsigned int 之间的一些简单转换。
下面这段代码给出的结果是 0。
const float maxFloat = 4294967295.0;
unsigned int a = (unsigned int) maxFloat;
printf("%u\n", a);
Run Code Online (Sandbox Code Playgroud)
0 被打印(我认为这很奇怪)。
另一方面,以下代码:
const float maxFloat = 4294967295.0;
unsigned int a = (unsigned int) (signed int) maxFloat;
printf("%u\n", a);
Run Code Online (Sandbox Code Playgroud)
打印 2147483648 我相信这是正确的结果。
如果我得到 2 个不同的结果会发生什么?
我想知道在使用Ada代码时绑定和链接之间的根本区别是什么?我在谷歌上找不到一个好的解释,这就是为什么我问这个问题.
对于绑定过程,输入是什么,输出是什么?绑定和链接之间有什么关系?我认为首先需要进行绑定.
谢谢,波格丹.
我刚开始学习ADA以及gnat是如何工作的,而且在阐述精细代码时我很少理解这些东西.
我已经看到几个例子,其中一个写这样的东西:
E003 : Short_Integer; pragma Import (Ada, E003, "XXX_E"),"XXX"通常是一个包的名称.
我在代码中搜索XXX_E符号但找不到它.因此,我认为这是由gnat以某种方式生成的?!(或者我错了?)我在哪里可以阅读更多相关内容?
谢谢,
我有一个特定的软件,它表现出的行为是未命中率如下所示:
L1-dcache-misses < L2-misses< L3-misses
Run Code Online (Sandbox Code Playgroud)
怎么会这样呢?
未命中率是通过perf查看重新填充计数器除以每个缓存的访问总数来计算的。