我有一个程序使用无符号字符来表示小范围的整数。我发现自己需要在程序的几个不同部分将它们清除为0,我最近也开始使用夹板并显然:
unsigned char c = 0;
发出警告:
Variable c initialized to type int, expects unsigned char: 0
Types are incompatible.
由于文字字符没有后缀,如何解决此问题?我想我有几个选择:
1:忽略警告。
2:每次施展:
unsigned char c = (unsigned char)0;
3:创建一个var来减少代码的长度:
unsigned char uc_0 = (unsigned char)0;
unsigned char c = uc_0;
4:功能:
static inline unsigned char uchar(int in)
{
return (unsigned char)in;
}
unsigned char c = uchar(0);
答案 0 :(得分:2)
splint
有一个+charint
选项,可以将char
int
视为可互换的。
答案 1 :(得分:0)
您可以忽略警告并使用
unsigned char = 0;
在许多情况下,当存在整数运算以节省内存而不是使用int
时,显然会消耗额外的内存而不是char,人们会使用unsigned char
。
unsigned char i = 10;
unsigned char j = 1;
unsigned char k = i +j;
printf("%d",k);