解释一段C代码
#include <stdio.h>
typedef unsigned char *byte_pointer;
void show_bytes(byte_pointer start, int len) {
int i;
for (i = 0; i < len; i++)
printf(" %.2x", start[i]);
printf("\n");
}
void show_int(int x) {
show_bytes((byte_pointer) &x, sizeof(int));
}
据说如上代码能够把int类型数据以低字节序列输出,无论大端和小端表示的机器都会一致。但是用英特尔的CPU,都是小端表示,我也没办法试验,谁给解释一下。这到底什么原理。
"无论大端和小端表示的机器都会一致"
这是骗你的……
因为这是骗人的,所以没什么原理值得解释
代码能够把int类型数据以低字节序列输出,无论大端和小端表示的机器都会一致
--------------------------------------------------------------------------
据说? 据谁说?
你看的深入理解计算机?
以低字节序列(不是低位)输出,大小端是不同的。
谁告诉你这段程序无论大小端机器输出都一致呢?把那人脱出来砍了。明明只不过安顺序输出罢了。
以低字节序列(不是低位)输出,大小端是不同的。
恩,估计是看错了这个函数的功能,这个函数只是把int 按照4个bytes打印出来而已。
把大小尾端一致的功能,没有看出来。
typedef unsigned char *byte_pointer;
void show_bytes(byte_pointer start, int len) {
int i;
for (i = 0; i < len; i++)
printf(" %.2x", start[i]);
pri
相关问答:
写了个测试程序如下
struct hostent *hp;
char AlarmDevIP[20];
int x2;
hp = gethostbyname("www.google.com");
if (hp)
{
......
有个winform程序,使用c#+mysql,需要在一个窗体设置mysql自动删除功能,包括自动删除多少天之前的数据以及是否开启自动删除功能,我程序退出后,还怎么控制Mysql自己删除啊?是不是要用mysql的event来实现?c#可以调用mysq ......
问题一:
在对齐为4的情况下
struct BBB
{
long num;
char *name;
short int data;
char ha;
short ba[5];
}*p;
p=0x1000000;
p+0x200=____;
(Ulong)p+0x200=____;
(char*)p+0x200=____;
假设在32位C ......
请问VFP中如何调用C/C++函数?
你要调用什么功能的函数?要看看VFP中有没有对应的函数,如果有就省着再调用了。如果没有,可以将C/C++函数写个DLL或FLL,然后在VFP调用即可。
十豆三 老师,怎么才能修改自己的 ......
有一10*10矩阵,除去第一个点(0,0)和最后一点(9,9),还有八个点为1,其他都为0,要求用二维数组表示。八个点是随机生成的,编写相关程序表示矩阵所有可能情况。
真心求教各位高手,哎!本人太菜了!呵呵!
......