В POSIX нет конкретного значения, и наоборот, он говорит, что должна быть вызвана одна из функций инициализации:
Функции srand48()
, seed48()
и lcong48()
являются точками входа инициализации, одна из которых должна быть вызвана перед вызовом либо drand48()
, lrand48()
, либо mrand48()
.(Хотя это и не рекомендуется, постоянные значения инициализатора по умолчанию должны предоставляться автоматически, если drand48()
, lrand48()
или mrand48()
вызывается без предварительного вызова точки входа инициализации.)
В более общем смысле, использование функций, использующих глобальное общее состояние, не очень хорошая идея.У этого набора функций есть альтернативы, которые получили свое состояние в качестве аргументов функции.
Если вы не вызываете ни одну из этих функций инициализации, вы идете с фразой в скобках.В основном это говорит о том, что внутренние состояния должны быть инициализированы значениями по умолчанию.Это не эквивалентно вызову srand48
с конкретным параметром, поскольку эта функция устанавливает биты младшего разряда в фиксированное значение 0x330
.Это может быть эквивалентно вызову seed48(0, 0, 0)
, но это не совсем понятно.Термин постоянные значения по умолчанию инициализатора может означать, что каждая реализация предоставляет свои значения по умолчанию или что должны использоваться инициализаторы по умолчанию в С (все биты 0
).