Избегайте избыточности в Python

Я сделал простую программу и скомпилировал ее с помощью GCC 4.4 / 4.5 следующим образом:

int main ()
{
  char u = 10;
  char x = 'x';
  char i = u + x;

  return 0;
}

g ++ -c -Wconversion a.cpp

И у меня есть следующее:

a.cpp: In function ‘int main()’:
a.cpp:5:16: warning: conversion to ‘char’ from ‘int’ may alter its value

То же предупреждение, что и для следующего кода:

  unsigned short u = 10;
  unsigned short x = 0;
  unsigned short i = u + x;

a.cpp: In function ‘int main()’:
a.cpp:5:16: warning: conversion to ‘short unsigned int’ from ‘int’ may alter its value

Не могли бы вы объяснить мне, почему добавление двух символов (или двух коротких строк без знака) дает int? Это ошибка компилятора или она соответствует стандарту?

Спасибо.

21
задан deceleratedcaviar 17 May 2011 в 01:22
поделиться