Diferencia entre byte y char en C

Me pregunto por qué no puedo comstackr un ejemplo del libro. Simplifico el ejemplo aquí para evitar publicar ejemplos de libros con derechos de autor.

#include  BYTE *data = "data"; int main() { printf("%s", data); return 0; } 

Cuando compilo con g ++, me sale un error,

 error: invalid conversion from 'const char*' to 'BYTE*' 

El progtwig funciona simplemente reemplazando BYTE con char, pero debo estar haciendo algo mal ya que el ejemplo proviene de un libro.

Por favor ayuda a señalar el problema. Gracias.

BYTE no forma parte del lenguaje C o de la biblioteca estándar de C, por lo que depende totalmente del sistema de si se define después de incluir solo el stdio.h encabezado estándar stdio.h .

En muchos sistemas que sí definen una macro BYTE , a menudo se trata de un unsigned char . La conversión de un const char* a un unsigned char* requeriría una conversión explícita.