我有一个函数接受布尔作为参数:
void func(bool a) { doing something; }
但是当我调用该函数并将字符串传递给它时:
func("false");
实际上,它只应接受。
func(false);
它接受字符串,没有任何错误。
为什么?
文字字符串是char指针,指针将隐式转换为bool。
空指针-> false
非空指针-> true
在这种情况下,func将从类型true
为非null的“ false”字符串中接收一个值const char*
。
您可能需要一个解释器功能,才能从键盘输入中读取“ false”,“ 0”,“ no”等,并将其转换为程序可以理解的布尔假。