C中字节和字符之间的差异
我想知道为什么我不能从书中编译一个例子。 我在这里简化了示例,以避免从受版权保护的书中发布示例。
#include BYTE *data = "data"; int main() { printf("%s", data); return 0; }
用g ++编译时,我得到错误,
error: invalid conversion from 'const char*' to 'BYTE*'
该程序只需用char代替BYTE,但我必须做错事,因为这个例子来自一本书。
请帮助指出问题所在。 谢谢。
BYTE
不是C语言或C标准库的一部分,因此完全依赖于系统是否在仅包含标准stdio.h
头文件后定义。
在许多定义BYTE
宏的系统上,它通常是unsigned char
。 从const char*
转换为unsigned char*
需要显式转换。