最近在将一个C的库转成C++,发现一个问题,在C的库里这段代码能正常工作,如果sourcefile_name没有赋值能够进入到if里:
char sourcefile_name[MAX_FULLPATH_LENGTH] = { 0 };
xxxxx
if (!sourcefile_name){
printf("No source file.\r\n");
return -1;
}
同样这段代码放到C++的编译器里(g++ 4.8.5)编译后就不赋值也进不去,看了文档发现C++编译器认为‘sourcefile_name’的地址总是等价为‘true’,想请教一下这段代码怎么改才能在C++环境里正常工作呢?想过通过sourcefile_name[0]=='\0'来判断,但是这样感觉容易段错误。。。
///////////////
补充一下,因为要二进制落盘,所以还得用char数组来存这个字符串,不用string,所以才会有这样的需求
--
修改:zhongxue FROM 103.216.43.*
FROM 103.216.43.*