Я сделал эту короткую программу на C, но всякий раз, когда я запускаю ее, вентилятор моего компьютера начинает вращаться очень быстро. Я что-то делаю не так, или библиотека времени как-то сильно загружает процессор? Вот код:
#include <stdio.h>
#include <time.h>
void delay(int seconds){
int clocks_to_wait = seconds * CLOCKS_PER_SEC;
clock_t time = clock();
while(clock() < time + clocks_to_wait){
}
}
int main(){
while(1){
printf("\r");
printf("-");
delay(1);
printf("\r");
printf("\\");
delay(1);
printf("\r");
printf("|");
delay(1);
printf("\r");
printf("/");
delay(1);
printf("\r");
printf("-");
delay(1);
}
return 0;
}
Я предполагаю, что пустой цикл while заставляет процессор нагреваться? Я прав?
Изменить: проблема решена, источник: Простая программа ‹Time.h› занимает много места количество ЦП
while(clock() < time + clocks_to_wait)
это называется опрос и является худшим способом проверки статуса. Вам нужно использовать таймер (в асинхронных программах) или спать вместо этого - person phuclv   schedule 01.02.2021