宏和大小端

1. 宏定義

宏 <==> 替換

#define MY_MACRO " a %s\n"
int main(){
    char *m = "macro";
    printf("This is" MY_MACRO, m);
    return 1;
}
// This is a macro

2. 大小端

低地址__________高地址
大端機器:0x12 0x34 0x56 低位放到高內存地址
小端機器:0x56 0x34 0x12 低位放到低內存地址

// 兩種方法判斷大小端
void func1()
{
    int i = 0x12345678;
    if(*((char*)&i)==0x12){
        printf("func1 says Big endian!\n");
    }else{
        printf("func1 says Little endian!\n");
    }
    return;
}

void func2()
{
    union _u{
        int i;
        char c;
    }u;
    u.i = 1;
    if(u.c ==1){
        printf("func2 says Little endian!\n");
    }else{
        printf("func2 says Big endian!\n");
    }
    return;
}

int main()
{
    func1();
    func2();
    return 1;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章