У меня есть переменная типа time_t (из <time.h>
), в которой хранится время сбоя, и я хотел бы инициализировать ее значением «null», которое будет окончательным значением, если не произойдет ошибки. Есть ли стандартный способ установить для переменной time_t какое-то известное нулевое значение? Я вижу, что функция time()
возвращает -1, если возникает ошибка, может быть, это лучше всего, но интересно, могу ли я просто присвоить целочисленное значение такому typedef. Может быть, мне нужно использовать это...?
time_t failTime = (time_t)(-1);
time_t failTime = -1;
достаточно, если только код не пытается работать с другими отрицательными значениямиtime_t
, что случается довольно редко. - person chux - Reinstate Monica   schedule 03.03.2017(time_t)(-1)
в спецификации C. AFIAK, система может использоватьunsigned long long
какtime_t
, и тогда приведение необходимо, чтобы успокоить педантичное предупреждение о присвоении знакового значения беззнаковой переменной. - person chux - Reinstate Monica   schedule 03.03.2017NULL
— это макрос с константой нулевого указателя. Ничего, что вы хотите назначитьtime_t
. - person too honest for this site   schedule 03.03.2017NULL
, константу нулевого указателя, а недопустимое значение по умолчанию, котороеtime_t
, надеюсь, не использует. Это тонкий подтекст, который легко спутать с буквальным первым чтением. - person chux - Reinstate Monica   schedule 03.03.2017