小编Cri*_*ian的帖子

37
推荐指数
2
解决办法
3万
查看次数

将char转换为4位的位字段条目

大家好我正面临另一个问题,我正在研究单个位并从ascii文本中提取数据.问题是编译器给出了一个错误,即将char(8位)转换为4位存储器字段可能会改变其值.

显然这是真的,但我怎么能克服这个错误呢?

typedef struct {
struct {
    unsigned int type:        4;
    unsigned int uid:         8;
    unsigned int operation:   4; 
    unsigned int reg:         16;
}header;
char *arg_nm;
} OWL_request;
Run Code Online (Sandbox Code Playgroud)

完整的错误:

 error: conversion to 'unsigned char:4' from 'char' may alter its value [-Werror=conversion]
Run Code Online (Sandbox Code Playgroud)

这是作业

request.header.type = (char)(j[0]-65);
Run Code Online (Sandbox Code Playgroud)

j*char

我要做的是在不改变编译器标志的情况下摆脱错误

c casting

1
推荐指数
1
解决办法
1812
查看次数