请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
int checkCPU()
{
{
union w
{
int a;
char b;
} c;
c.a = 1;
return (c.b == 1);
}
}
剖析:
嵌入式系统开发者应该对Little-endian和Big-endian模式非常了解。采用Little-endian模式的CPU对操作数的存放方式是从低字节到高字节,而Big-endian模式对操作数的存放方式是从高字节到低字节。例如,16bit宽的数0×1234在Little-endian模式CPU内存中的存放方式(假设从地址0×4000开始存放)为:
内存地址 存放内容
0×4000 0×34
0×4001 0×12
而在Big-endian模式CPU内存中的存放方式则为:
内存地址 存放内容
0×4000 0×12
0×4001 0×34
32bit宽的数0×12345678在Little-endian模式CPU内存中的存放方式(假设从地址0×4000开始存放)为:
内存地址 存放内容
0×4000 0×78
0×4001 0×56
0×4002 0×34
0×4003 0×12
而在Big-endian模式CPU内存中的存放方式则为:
内存地址 存放内容
0×4000 0×12
0×4001 0×34
0×4002 0×56
0×4003 0×78
联合体union的存放顺序是所有成员都从低地址开始存放,面试者的解答利用该特性,轻松地获得了CPU对内存采用Little-endian还是Big-endian模式读写。如果谁能当场给出这个解答,那简直就是一个天才的程序员。
{
{
union w
{
int a;
char b;
} c;
c.a = 1;
return (c.b == 1);
}
}
剖析:
嵌入式系统开发者应该对Little-endian和Big-endian模式非常了解。采用Little-endian模式的CPU对操作数的存放方式是从低字节到高字节,而Big-endian模式对操作数的存放方式是从高字节到低字节。例如,16bit宽的数0×1234在Little-endian模式CPU内存中的存放方式(假设从地址0×4000开始存放)为:
内存地址 存放内容
0×4000 0×34
0×4001 0×12
而在Big-endian模式CPU内存中的存放方式则为:
内存地址 存放内容
0×4000 0×12
0×4001 0×34
32bit宽的数0×12345678在Little-endian模式CPU内存中的存放方式(假设从地址0×4000开始存放)为:
内存地址 存放内容
0×4000 0×78
0×4001 0×56
0×4002 0×34
0×4003 0×12
而在Big-endian模式CPU内存中的存放方式则为:
内存地址 存放内容
0×4000 0×12
0×4001 0×34
0×4002 0×56
0×4003 0×78
联合体union的存放顺序是所有成员都从低地址开始存放,面试者的解答利用该特性,轻松地获得了CPU对内存采用Little-endian还是Big-endian模式读写。如果谁能当场给出这个解答,那简直就是一个天才的程序员。
【请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1】相关文章
1. 请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2. 写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
3. 请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
4. 编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
5. 写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
6. 介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
7. 写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
8. static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
10. 软件测试LoadRunner面试题:How do you identify the performance bottlenecks
本文来源:https://www.mianshiwenti.com/a13206.html
进入下载页面
﹝请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1﹞相关内容
- 软件测试LoadRunner面试题: Analysis Scenario (Bottlenecks)
- 软件测试LoadRunner面试题:What do vuser_init action and vuser_end action contain?
- 什么是UTL_FILE, 她相关的Procedure和函数都有什么
- 我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢
- .TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
- 写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
- 软件测试LoadRunner面试题:Explain the following functions: – lr_debug_message
- 编写函数,将一个3*3矩阵转置
- 什么是lambda函数
- 怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?