Предполагая, что вы хотите, чтобы структура struct timeval
была повторно инициализирована до нулевых значений независимо от того, являются ли они типами с плавающей запятой или целыми типами, и независимо от нулевого представления для типов с плавающей запятой, метод, который будет работать с C90 или более поздней версией или C ++ :
static struct timeval init_timeval; // or whatever you want to call it
// ...
myTime = init_timeval;
Как и в ответе Р. и ответе Немо , это также будет обрабатывать указатели NULL независимо от того, как они могут быть представлены. Я не могу себе представить, почему у struct timeval
был бы указатель, но я упоминаю об этом, потому что этот метод полезен для структур, отличных от struct timeval
.
Недостаток этого метода по сравнению с другими ответами состоит в том, что для него требуется где-то определить статическую или глобальную переменную. Преимущество заключается в том, что он будет работать с компиляторами не-C99.