2

我有一个程序使用无符号字符来表示小范围的整数。我发现自己需要在程序的几个不同部分将它们清除为 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);
4

2 回答 2

2

splint有一个可以+charint互换char int的选项。

于 2015-01-12T14:06:08.310 回答
0

您可以忽略警告并使用

unsigned char = 0;

在许多情况下,为了节省内存而不是使用整数运算,int这显然比人们使用的 char 消耗更多的内存unsigned char

unsigned char i = 10;
unsigned char j = 1;
unsigned char k = i +j;
printf("%d",k);
于 2015-01-12T14:24:06.360 回答