可以从预处理器转换为数组吗?

问题描述 投票:-1回答:3

我正在尝试将预处理器强制转换为数组,但我不确定它是否可行,

例如,我已定义:编号0x44332211

代码如下:

#include <stdio.h>
#include <stdint.h>

#define number 0x44332211

int main()
{

   uint8_t array[4] = {(uint8_t)number, (uint8_t)number << 8,(uint8_t)(number <<16 ),(uint8_t)(number <<24)};

    printf("array[%x] \n\r",array[0]);  // 0x44
    printf("array[%x] \n\r",array[1]);  // 0x33
    printf("array[%x] \n\r",array[2]);  // 0x22
    printf("array[%x] \n\r",array[3]);  // 0x11

    return 0;
}

我想把它投两个uint8_t数组[4],其中array [0] = 0x44,array [1] = 0x33,array [2] = 0x22,array [3] = 0x11

可能吗?

my output:
array[11]                                                                                                                                      
array[0]                                                                                                                                       
array[0]                                                                                                                                       
array[0]
c arrays casting preprocessor
3个回答
© www.soinside.com 2019 - 2024. All rights reserved.