C言語 : 練習
int = char[4] であることとリトルエンディアンを体験。
まず、int -> char[4]から
#include <stdio.h> void print_chars (int i) { char *cc = (char *) &i; int j; for (j=0; j<4; ++j) { printf("%d\n",(int)cc[j]); } } int main (int argc, char **argv) { print_chars(0x01020304); print_chars(0x04030201); }
結果は
$ ./a.exe 4 3 2 1 1 2 3 4
つぎは、char[4] -> int
#include <stdio.h> void print_int (char *str) { int i = * (int *) str; printf("%d\n",i); } int main (int argc, char **argv) { print_int("A\0\0\0"); print_int("\0A\0\0"); }
結果は
$ ./a.exe 65 16640