我有一个当前返回unsigned char
的函数。但是,我想将unsigned char
强制转换为char*
,但我会继续从/向指针转换为/向不同大小的整数警告。
让foo
成为返回unsigned char的函数
我试过这样的事情:
char* convert = (char*)foo();
转换为char*
的原因是因为我需要使用strcasecmp
函数来执行字符串比较。
答案 0 :(得分:2)
您根本无法将非指针函数返回值强制转换为指针。想一想,这个指针指向哪里?
但是,您可以将结果保存到变量并指向它。 例如,
char tmp = (char) foo();
char * ptr = &tmp;
编辑:
正如另一个答案所说,如果你想使用strcasecmp
,你需要一个char
数组,其中最后一个字节是空终止符。
答案 1 :(得分:2)
要实现您的目标,请使用以下代码:
char array [2];
array [0] = (char) foo ();
array [1] = '\0';
...
... strcasecmp (array, ...);
这将构建一个包含单个字符的字符串的数组,然后您可以使用该字符串。