1

構造体から文字列を char 値に代入しようとしています

typedef struct blah_param_s {
    struct blah_param_s*  param_next;
    blah_param_type_t     param_type;
} blah_param_t;

typedef struct blah_param_char_s {
    blah_param_t    param_hdr;
    char*           param_val;
} blah_param_char_t;

私の機能は次のとおりです。

static inline char blah_get_param_char (blah_param_t* param_p)
{
    return (((blah_param_char_t*)param_p)->param_val);
}

そして、これをすべて開始する問題のあるコードは次のとおりです。

((blah_param_char_t*)new_param_p)->param_val = value;

値は「何とか」です

これは私に警告を与えます: return はキャストなしでポインタから整数を作ります

整数の場合、次のように機能します。

typedef struct blah_param_int_s {
    blah_param_t    param_hdr;
    uint32_t        param_val;
} blah_param_int_t;

static inline uint32_t blah_get_param_int (blah_param_t* param_p)
{
    return (((blah_param_int_t*)param_p)->param_val);
}

どんな助けでも本当に感謝します!

4

1 に答える 1