Назначения - это выражения на C, так что то, что у вас есть, работает. Изменение ;
на {}
означает то же самое и гораздо понятнее, сделайте это как минимум. Следует избегать присвоений в условиях, когда у вас есть более четкая альтернатива (что обычно является верным), но если она наиболее ясна в этом месте, используйте ее.
Результатом присваивания является присвоенный объект. a = value
выполнит задание и затем оценит до a
. Это используется для таких вещей, как a = b = 0
.
Для дальнейшей очистки кода нет необходимости в приведении типа void, и если это символы, используйте '\ 0' (нулевой символ) вместо NULL (который предполагается использовать только с указателями).