1.判断64位32位
- 方法一:用sizeof()
#include <stdio.h>
int main(void)
{
printf("%d\n", sizeof(void *)):
return 0;
}
- 方法二:不用sizeof()
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int **p = NULL;
p = (int **)malloc(2*16);
printf("1=%p, 2=%p\n", &p[0], &p[1]);
return 0;
}
其他不用sizeof的方法见:
http://blog.csdn.net/i_scream_/article/details/51619456
2.判断主机字节序
#include <stdio.h>
typedef union TEST_U_
{
short a;
char b[2];
}TEST;
int main(void)
{
TEST test;
test.a = 0x1234;
if (test.b[0] == 0x12 && test.b[1] == 0x34)
{
printf("big\n");
}
else if(test.b[0] == 0x34 && test.b[1] == 0x12)
{
printf("little\n");
}
return 0;
}