来自文字 Splint 的 C 字符警告不兼容的类型
C Character from literal Splint warns of incompatible types
我有一个程序使用无符号字符来表示小范围的整数。我发现自己需要在程序的几个不同部分将它们清除为 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);
splint
有一个选项 +charint
,它将 char
int
视为可互换的。
您可以忽略警告并使用
unsigned char = 0;
在许多情况下,为了节省内存而不是使用 int
进行整数运算,这显然比 char 消耗更多内存,人们确实使用 unsigned char
.
unsigned char i = 10;
unsigned char j = 1;
unsigned char k = i +j;
printf("%d",k);
我有一个程序使用无符号字符来表示小范围的整数。我发现自己需要在程序的几个不同部分将它们清除为 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);
splint
有一个选项 +charint
,它将 char
int
视为可互换的。
您可以忽略警告并使用
unsigned char = 0;
在许多情况下,为了节省内存而不是使用 int
进行整数运算,这显然比 char 消耗更多内存,人们确实使用 unsigned char
.
unsigned char i = 10;
unsigned char j = 1;
unsigned char k = i +j;
printf("%d",k);