A. S. schrieb:
> mh schrieb:
>> Was sich der Autor wohl bei der "return-Zeile" gedacht hat?
>
> Was überrascht dich da?
Da wird erst eine "explicit type conversion" durchgeführt und dann eine
"implicit integer conversion":
1 | int -> short -> unsigned short.
|
Auch, wenn der Rückgabewert den Typ short hätte, wäre der cast
überflüssig, es sei denn man muss/möchte eine Warnung beseitigen. Aber
er hat den Typ unsigned short, es würde also weiterhin eine Warnung
geben.
1 | <source>:11:10: warning: conversion to 'short unsigned int' from 'short int' may change the sign of the result [-Wsign-conversion]
|
2 |
|
3 | 11 | return (short)(sign == 0 ? data : -data);
|
4 |
|
5 | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
6 |
|
7 | Compiler returned: 0
|