Нет, это не очень хороший способ сделать это, потому что он не работает.
if(*str1==*str2 =='\0')
будет оцениваться как:
bool tmp1 = *str1==*str2;
bool tmp2 = tmp1 == '\0';
if (tmp2)
Другими словами, поскольку bool будет преобразован в целое число, ваш тест будет возвращать значение true, когда строки начинаются с разных символов (tmp1
будет иметь значение false, которое преобразуется в 0, и поэтому tmp2
становится истинным )
Не пытайтесь перехитрить компилятор. Написание быстрого кода не сводится к написанию как можно меньшего количества строк кода или даже как можно более коротких строк. Даже если объединение ==
таким образом имело бы смысл, нет причины, почему это было бы быстрее. Просто напишите код, который вы понимаете, и можете писать правильно.