【发布时间】:2020-10-04 10:12:40
【问题描述】:
我正在准备计算机架构考试,但我似乎无法回答这个问题:
以下代码可用于检查与内存相关的 ISA 功能。使用这个函数你能确定什么?
#define X 0
#define Y 1
int mystery_test(){
int i = 1;
char *p = (char *) &i;
if(p[0] == 1) return X;
else return Y;
}
我在想它会检查指针和数组是否基本相同,但这不是与内存相关的功能,所以我很确定我的答案是错误的。
有人可以帮忙吗?另外,内存相关的 ISA 特性有哪些?
谢谢!
【问题讨论】:
-
这段代码检查 CPU 是 little-endian 还是 big-endian
-
他们希望你告诉他们字节序。但是由于其中的错误,该函数还告诉了其他内容。如果它终止了进程,你可以告诉你你在一台有对齐限制的机器上。不幸的是,如果它没有终止进程,它不会告诉你任何关于对齐限制的信息。
标签: c memory instruction-set