从结构分配一个字符串转换为字符值

问题描述:

我试图从一个结构从结构分配一个字符串转换为字符值

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); 
} 

任何帮助将非常感激!

+3

如果param_val的类型是char *,那么应该是你的返回类型。 'char'和'char *'是不一样的。 – 5gon12eder 2015-02-07 00:38:41

,如果你想从功能blah_get_param_char返回字符串的第一个字符,然后使用*(((blah_param_int_t*)param_p)->param_val) 代替(((blah_param_char_t*)param_p)->param_val);

或者,如果你想返回整个字符串,然后返回为指针(char*)字符串。