从结构分配一个字符串转换为字符值
问题描述:
我试图从一个结构从结构分配一个字符串转换为字符值
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;
其中value “嗒嗒”
这给我一个警告:返回时将整数指针,未作铸现在
的整数它的工作原理:
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);
}
任何帮助将非常感激!
答
,如果你想从功能blah_get_param_char
返回字符串的第一个字符,然后使用*(((blah_param_int_t*)param_p)->param_val)
代替(((blah_param_char_t*)param_p)->param_val);
或者,如果你想返回整个字符串,然后返回为指针(char*
)字符串。
如果param_val的类型是char *,那么应该是你的返回类型。 'char'和'char *'是不一样的。 – 5gon12eder 2015-02-07 00:38:41