1、what is the address of a multiple data?
the smallest
0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8
-----------------------------------------------
-----------------------------------------------
#include <stdio.h>
int main()
{
int a[2];
if (&a[0] < &a[1]) printf("that's right !\n");
struct test{
unsigned ui;
unsigned char x[4];
}o_o;
if ((unsigned)&o_o.ui < (unsigned)&o_o.x[0]) printf("that's right!\n");
return 0;
}
2、what is the endian?
#include <stdio.h>
char endian(void)
{
int i = ~0 - 1;
return *(unsigned char *)&i==0xfe ? 'L' : 'B';
}
char int_endian(void){
int i = ~0 - 1;
return *(char *)&i == -2 ? 'L' : 'B';
}
int main()
{
endian()=='L' ? printf("little endian\n") : printf("big endian\n");
int_endian()=='L' ? printf("little endian\n" ) : printf("big endian\n");
return 0;
}
3、what is used the int constant ?
oct: 0xxxxxxxxxxx+UL
hex: 0xffffffffffffffffff+ UL
dec: ---> +/-
#include <stdio.h>
int main()
{
int i = 0x12345678U;
printf("%x\n", i);
return 0;
}