Возник вопрос. Можно ли в C использовать переменную произвольного типа в зависимости от контекста? Пример кода.
void test(int type) {
 if (type==1) {
  char *data = "Hello world";
 }
 if (type==2) {
  int data = 123;
 }
// ...
}
Экспериментировал с void. Работает лишь наполовину
void test(int type) {
 void *data;
 if (type==1) {
  char *data = "Hello world";
  printf("Data: %s\n",data); // Тут data - правильные
 }
 if (type==2) {
  int data = 123;
 }
// ...
 printf("Data: %s\n",data); // А вот тут data - поломанные
}
Первый printf выводит как положено, Hello world.
А вот второй printf вне условия, выводит �ÐUH��H�� H�}�H�
Благодарю.






