Переключитесь на другое имя переменной с нужным типом.
char p = 1;
int q = (int)p;
q = 0x12345678;
Нет другого обходного пути, о котором я знаю.
В качестве примечания, если вы хотитеобеспечить переносимость, будьте осторожны, когда вы приводите символы к целым числам или наоборот.Стандарт C дает гарантию того, что, например, от «0» до «9» будет последовательным и увеличивающимся, но не дает никаких гарантий относительно их значений.