Tôi đã sau xác định trong mã của tôiTôi làm cách nào để xác định chuỗi ký tự chưa ký *?
#define PRODUCTNAME "SomeName"
và tôi muốn gửi nó với một hàm com_reply(unsigned char* msg, uint16_t lenght)
.
Bây giờ, tôi nhận được cảnh báo rằng đối số của tôi khác nhau về sự ký kết. Tôi biết vấn đề là gì và cũng tại sao com_reply
sử dụng unsigned char*
thay vì char*
, tôi chỉ muốn biết:
Làm thế nào tôi có thể xác định chuỗi của tôi như là một unsigned char*
vì vậy tôi có thể sử dụng nó trong suốt chương trình của tôi mà không nhận được cảnh báo ở khắp mọi nơi .
EDIT:
Nói đúng ra tôi có nhiều hơn một định nghĩa ở đây và lý do chính là có một BANNER
xác định trong đó bao gồm nhiều định nghĩa khác, như thế này:
#define PRODUCTNAME "SomeName"
#define PRODUCTDATE "2013-03-30"
#define BANNER PRODUCTNAME " (" PRODUCTDATE ")"
Tôi có nên tạo const biến và nối chúng vào lúc bắt đầu chương trình thay vì sử dụng định nghĩa ở đây?
Tại sao không 'const char * PRODUCTNAME = "somename" 'hoặc tương tự? (không liên quan, nhưng #define có nhiều bất lợi cho điều này.) –
Tôi không biết mức độ tuân thủ tiêu chuẩn này như thế nào, nhưng còn về: '(const unsigned char *)" SomeName "' – Mysticial
Hết sức tò mò, cái gì là 'com_reply' chức năng làm gì? Nó có vẻ giống như một cái gì đó không thực sự lấy một chuỗi, mà là một con trỏ tới một số từ 0 đến 255. – austin