История изменений
Исправление firkax, (текущая версия) :
Больше не может, но может быть равно. И если равно, то результат short*short будет типа short. Который хоть и то же самое что int, но формально всё-таки другой тип. На что это может повлиять я не знаю. Может быть, ни на что. Если бы был автоматический вывод типов, то можно было бы сделать такое:
void f(short a, short b) {
auto c = a*b;
int *d;
d = &c;
}
И на 16-битной платформе оно выдаст как минимум варнинг о несоответствии типа указателя, поскольку c
будет типа short, а типы int*
и short*
- это разные типы, несмотря на полностью идентичное внутреннее устройство.
Исправление firkax, :
Больше не может, но может быть равно. И если равно, то результат short*short будет типа short. Который хоть и то же самое что int, но формально всё-таки другой тип. На что это может повлиять я не знаю. Может быть, ни на что. Если бы был автоматический вывод типов, то можно было бы сделать такое:
void f(short a, short b) {
auto c = a*b;
int *d;
d = &c;
}
И на 16-битной платформе оно выдаст как минимум варнинг о несоответствии типа указателя, поскольку c
будет типа short, а типы int*
и short*
- это разные типы, несмотря на полностью идентичное внутреннее устройство.
В С++ есть вывод типов кстати и можно было бы там проверить, если бы современные компиляторы поддерживали 16-битный режим. Хотя я не знаю точно, там могут и отличаться арифметические правила вывода типов.
Исправление firkax, :
Больше не может, но может быть равно. И если равно, то результат short*short будет типа short. Который хоть и то же самое что int, но формально всё-таки другой тип. На что это может повлиять я не знаю. Может быть, ни на что. Если бы был автоматический вывод типов, то можно было бы сделать такое:
void f(short a, short b) {
auto c = a*b;
int *d;
d = &c;
}
И на 16-битной платформе оно выдаст как минимум варнинг о несоответствии типа указателя, поскольку c
будет типа short, а типы int*
и short*
- это разные типы, несмотря на полностью идентичное внутреннее устройство.
В С++ есть вывод типов кстати и можно было бы там проверить, если бы современные компиляторы поддерживали 16-битный режим.
Исходная версия firkax, :
Больше не может, но может быть равно. И если равно, то результат short*short будет типа short. Который хоть и то же самое что int, но формально всё-таки другой тип. На что это может повлиять я не знаю. Может быть, ни на что. Если бы был автоматический вывод типов, то можно было бы сделать такое:
void f(short a, short b) {
auto c = a*b;
int *d;
d = &c;
}
И на 16-битной платформе оно выдаст как минимум варнинг о несоответствии типа указателя, поскольку c
будет типа short, а типы int*
и short*
- это разные типы, несмотря на полностью идентичное внутреннее устройство.