面试题答案
一键面试#include <stdio.h>
// 定义结构体
typedef struct {
unsigned int red : 3;
unsigned int green : 3;
unsigned int blue : 2;
} Color;
// 函数声明
unsigned int getColorValue(Color color);
int main() {
Color color = {5, 6, 3}; // 示例值
unsigned int value = getColorValue(color);
printf("颜色值(十进制): %u\n", value);
return 0;
}
// 函数定义
unsigned int getColorValue(Color color) {
return (color.red << 5) | (color.green << 2) | color.blue;
}
解释:
- 定义了一个名为
Color
的结构体,包含三个位域成员red
(3位)、green
(3位)、blue
(2位)。 getColorValue
函数将结构体中的颜色分量组合成一个十进制表示的颜色值。其中red
左移5位,green
左移2位,然后与blue
进行按位或操作。- 在
main
函数中,创建一个Color
结构体变量并初始化,调用getColorValue
函数获取颜色值并输出。