我正在编译一个代码,这给了我以下函数的错误:
inline char *align(char *var, DataType_e type)
{
return (DataTypeSize[type] == 0) ? var :
(char*) (((unsigned int)(var) + DataTypeSize[type]-1) /
DataTypeSize[type] * DataTypeSize[type]);
}
以下错误符合 "(unsigned int)(var)" :
error: cast from 'char*' to 'unsigned int' loses precision
如果我将“unsigned int”更改为“unsigned long”,编译工作但我在运行程序时没有得到预期的结果。关于如何解决这个问题的任何想法?