Hàm delay có tí tẹo mà cũng có ưu nhược nữa sao? Hic
C Code:
void delay( unsigned long ti ) { for( unsigned long o = 0; o < ti; ++o ); }
Mình đang làm đề tài có câu hàm delay() cách dùng và nhược điểm có pro nào giúp mình vớibạn nào có tài liệu link nhé chuẩn về hàm delay() thì cho mình xin link nhé :"]
Hàm delay có tí tẹo mà cũng có ưu nhược nữa sao? Hic
C Code:
void delay( unsigned long ti ) { for( unsigned long o = 0; o < ti; ++o ); }
Nhược điểm là nó ngồi đó ngốn CPU
Sai chỗ nào ?C++ Code:
Code này sai rồi. Dùng Sleep trong Windows.h
- Delay nhận vào 1 khoảng thời gian cho nó chạy 1 khoảng thời gian để chờ làm 1 cái gì đó, demo trên là 1 vòng for() có ý nghĩa chờ. Vậy sai chỗ nào ?
- Cậu dịch chữ delay() cho tui xem khỏi cần ý nghĩa thông số, tui đọc hàm có ý nghĩa với code không phải function của Windows. Đừng nói sai rồi hỏi ngược tui kiểu đó !
Thông số truyền vô không rõ ràng, khoảng thời gian mà bạn nói chung chung quá, thời gian phải có đơn vị cụ thể (ms, s, h...) với lại dùng vòng lặp như bạn thì có xác định được là nó sẽ delay trong bao lâu không?!?!
for (unsigned int i = 0; i < (1 << 31); ++i);
Chạy code này xem, tui đố bạn nó sẽ delay trong bao lâu đó.
Tui chưa thấy ở đâu dùng delay kiểu như bạn cả. Nói chung code như bạn không dùng được.
Trong VB6, tui dùng thế này
Chuyển qua C thì tương tự dùng hàm lấy thời gian trong time.hCode:t = timer() + 5 //Lấy thời gian hiện tại + 5s While (t < timer()) // Doevent Loop
- Delay implementation thế nào tùy thuộc vào từng trường hợp cụ thể, giả nếu tui chỉ cần trong 1 khoảng thời gian tui cần để tạo 1 số tác dụng đối với người dùng tui có cần gọi timer() không ? Cậu không thể bắt tui dùng cái tui không cần tới !Thông số truyền vô không rõ ràng, khoảng thời gian mà bạn nói chung chung quá, thời gian phải có đơn vị cụ thể (ms, s, h...) với lại dùng vòng lặp như bạn thì có xác định được là nó sẽ delay trong bao lâu không?!?!
Cậu chưa thấy không có nghĩa là sai ? Code đó chỉ không chính xác về mặt thời gian, nhưng có những lúc tui cần như thế và tui dùng.Tui chưa thấy ở đâu dùng delay kiểu như bạn cả. Nói chung code như bạn không dùng được.
Đừng đố tui, tui không biết đâu.for (unsigned int i = 0; i < (1 << 31); ++i);
Chạy code này xem, tui đố bạn nó sẽ delay trong bao lâu đó.