Есть причины не использовать 1000 * 1000 * 1000
.
С 16-разрядным int
, 1000 * 1000
переполнение. Таким образом, использование 1000 * 1000 * 1000
снижает переносимость.
С 32-битной int
следующие переполнения.
long long Duration = 1000 * 1000 * 1000 * 1000; // overflow
long long Duration = 1000000000000; // no overflow, hard to read
Предполагают, что свинец значение соответствует типу назначения для удобства чтения, портативности и правильности.
double Duration = 1000.0 * 1000 * 1000;
long long Duration = 1000LL * 1000 * 1000 * 1000;
Также может просто использовать e
обозначения для значений, которые точно представима как double
. Конечно, это приводит к пониманию того, может ли double
точно представлять целое числовое значение - что-то касающееся значений больше 1е9. (См. DBL_EPSILON
и DBL_DIG
).
long Duration = 1000000000;
// vs.
long Duration = 1e9;
Ясность и удобочитаемость кода. Вы не можете поставить или «как разделители на C», поэтому следующая лучшая вещь - вычисление значения из умножения.^- несвязанный оператор в С - исключительный ИЛИ. –
он особенно используется для длительностей, таких как: 2 * 60 * 60 .. его легко заметить, что за 2 часа .. – Idali
Для одного я подозреваю, что 1 000 000 000 недопустим синтаксис – Paparazzi