2010-08-16 13 views

Trả lời

8

Bạn đang chuyển đến cửa sổ từ nền tảng nào? Dù sao thì bzerobcopy được khấu hao từ khá lâu.

cho bzero:

Chức năng này bị phản đối (đánh dấu là LEGACY trong POSIX.1-2001): memset sử dụng (3) trong chương trình mới. POSIX.1-2008 xóa specifica- tion of bzero().

cho bcopy:

Chức năng này bị phản đối (đánh dấu là LEGACY trong POSIX.1-2001): sử dụng memcpy (3) hoặc memmove (3) trong các chương trình mới. Lưu ý rằng hai đối số đầu tiên được hoán đổi cho memcpy (3) và memmove (3). POSIX.1-2008 loại bỏ đặc điểm kỹ thuật của bcopy().

Vì vậy, chỉ cần sửa mã của bạn và sử dụng các thay thế được đề xuất.

11

báo bạn sẽ cần phải đào cho hai người còn lại là:

#define bzero(b,len) (memset((b), '\0', (len)), (void) 0) 
#define bcopy(b1,b2,len) (memmove((b2), (b1), (len)), (void) 0) 
+1

Nhà điều hành dấu phẩy dường như không cần thiết, bạn chỉ có thể đúc kết quả của các chức năng cho 'trống '. – caf

+0

cũng bây giờ tôi thấy tôi cần thay thế cho chức năng báo thức cũng ... – user63898

2

báo động có một cái nhìn tại chức năng Win32 API-SetTimer().

4
memcpy (output, input, size * sizeof (input[0])); 

thay vì

bcopy (input, output, size * sizeof (input[0])); 

memset(m, 0, n * sizeof (gfloat)); 

thay vì

bzero (m, n * sizeof (gfloat)); 
+0

cảm ơn! Điều này đã làm việc – Faizan