Возник вопрос. Можно ли в 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�
Благодарю.