我有一个 S8 类型定义,以及一个使用该定义类型的调试打印功能。
typedef signed char S8;
S32 CH_COM_DebugPrintf(const S8 *rpc_format, ...)
当我像下面这样调用这个 printf 函数时,
CH_COM_DebugPrintf("TunerCallback device id:[%d]\r\n", ri_Device);
CH_COM_DebugPrintf("TunerCallback event type:[%d]\r\n", renm_EventType);
编译的时候报错,怎么回事?
arm-hisiv200-linux-g++ -I./gtest/include -I../drv/include -g -Wall -Wextra -c src/chdrv_tunner_test.cc
src/chdrv_tunner_test.cc: In function 'void CHDRV_TEST_TunerCallback(S32, CHDRV_TUNER_EVENT_TYPE_e, void*)':
src/chdrv_tunner_test.cc:30: error: invalid conversion from 'const char*' to 'const S8*'
src/chdrv_tunner_test.cc:30: error: initializing argument 1 of 'S32 CH_COM_DebugPrintf(const S8*, ...)'
src/chdrv_tunner_test.cc:31: error: invalid conversion from 'const char*' to 'const S8*'
src/chdrv_tunner_test.cc:31: error: initializing argument 1 of 'S32 CH_COM_DebugPrintf(const S8*, ...)'
src/chdrv_tunner_test.cc: At global scope:
它没有工作,因为我强制转换为(const S8 *),请给我一些帮助。非常感谢您的帮助。
CH_COM_DebugPrintf((S8*)"TunerCallback device id:[%d]\r\n", ri_Device);
CH_COM_DebugPrintf((S8*)"TunerCallback event type:[%d]\r\n", renm_EventType);