#include <stdio.h> #include <assert.h> int my_if(int a) { char* p =(char *) &a; assert(p != NULL); //斷言函數(防止爲空指針) //直接返回值: //1的截取爲:01 (截取:char類型爲1字節截取整形地址高地址) //放於高地址則返回:00-0 //放於低地址則返回:01-1 return *p; } int main() { int a = 1; //內存中 左邊:低地址 右邊 :高地址 int b=my_if(a); //1的內存存儲爲: 0x 00(高位) 00 00 01(低位)----->存儲規則 if (0 == b) { printf("大端\n"); // 數據低位放於存儲高位,數據高位放於存儲低位. 0x 00 00 00 01 } else { printf("小端\n"); //與之相反 : 0x 01 00 00 00 } return 0; }
精簡版:(自定義函數中直接返回值)
ide
#include <stdio.h> #include <assert.h> int my_if(int a) { return *(char*)&a; //char* p =(char *) &a; //assert(p != NULL); //斷言函數(防止爲空指針) ////直接返回值: ////1的截取爲:01 (截取:char類型爲1字節截取整形地址高地址) ////放於高地址則返回:00-0 ////放於低地址則返回:01-1 //return *p; } int main() { int a = 1; //內存中 左邊:低地址 右邊 :高地址 int b=my_if(a); //1的內存存儲爲: 0x 00(高位) 00 00 01(低位)----->存儲規則 if (0 == b) { printf("大端\n"); // 數據低位放於存儲高位,數據高位放於存儲低位. 0x 00 00 00 01 } else { printf("小端\n"); //與之相反 : 0x 01 00 00 00 } return 0; }