im đang porting c để cửa sổ 32 bit sử dụng visual studio hiện
bây giờ tôi có 3 chức năng mà tôi không thể tìm thấy bất kỳ lựa chọn thay thế trong các cửa sổ
chúng là:
báo động
bzero
bcopy
phương pháp tương đương trong C win32 là gì?gì là lựa chọn cho win32 để báo động, bzero, bcopy khi porting mã c
Trả lời
Bạn đang chuyển đến cửa sổ từ nền tảng nào? Dù sao thì bzero
và bcopy
đượ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.
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)
báo động có một cái nhìn tại chức năng Win32 API-SetTimer()
.
memcpy (output, input, size * sizeof (input[0]));
thay vì
bcopy (input, output, size * sizeof (input[0]));
Và
memset(m, 0, n * sizeof (gfloat));
thay vì
bzero (m, n * sizeof (gfloat));
cảm ơn! Điều này đã làm việc – Faizan
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
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