2015-11-13 5 views
4

Я имел этот код как часть C++ проектC++ Необходимость типажей междунара беззнакового Int

unsigned int fn() { 
    //do some computations 
    int value = .... 

    if(value <= 0) 
     return 0; 
    return (unsigned int)value; 
} 

я не получаю необходимости использовать бросок на последнее возвращении заявлении, так как все отрицательных числа буду попавший в оператор if (следовательно, возвращающий 0).

И, кроме того, эта функция fn вызывается из другой функции (возвращаемый тип которой равен int), которая просто возвращает значение, возвращаемое fn.

Спасибо ..

ответ

4

Цель состоит в том, чтобы заглушить предупреждение компилятора, который в противном случае может быть выдан.

+1

Но нет необходимости, чтобы 'fn' возвращал' unsigned int' в первую очередь правильно? – Ashwin

+0

@Ashwin Нет, нет. –

+2

@Ashwin Нет, но он указывает вызывающей стороне fn, что функция не вернет отрицательные значения. Также имеет смысл возвращать 'unsigned int' в зависимости от того, для чего используется результат. –

-1

Я думаю, что это действительно ничего не меняет Я лично запускаю тот же код для разных сценариев, и кажется, что последнее действие может быть устранено.