我希望在C程序中使用相同的变量名,在C程序中使用不同的数据类型,而不进行转换。
,我真的很想这么做,别问为什么。
那我该怎么做呢?
如果这个变量在做预防性撤销时不存在,我如何处理这个错误?
发布于 2010-12-06 23:15:12
你不能。你能得到的最接近的是创建单独的作用域,并在其中使用相同的变量名:
{
int val;
// do something with 'val'
}
{
double val;
// do something with 'val'
}发布于 2010-12-06 23:15:21
我认为这在C中是不可能的,我能想象的唯一方法就是编写程序,这样两个不同的变量存在于完全不同的范围内。例如当您在不同的函数中使用它们时。除此之外,您还需要使用第一个变量,选择一个不同的名称。
我的建议-如果你绝对要求在同一范围内存在-将在名称前加上一个识别字母的类型,所以:
int iVal;
double dVal;发布于 2010-12-06 23:17:20
当您使用已经存在的名称定义变量时,新定义“隐藏”旧变量。
#include <stdio.h>
int main(void) {
int variable = 42;
printf("variable is an int and its value is %d\n", variable);
{
double variable = -0.000000000000003;
printf("variable is a double and its value is %g\n", variable);
}
{
FILE *variable = NULL;
printf("variable is a FILE * and its value is NULL :-)\n");
}
printf("variable is an int again and its value is, again, %d\n", variable);
return 0;
}https://stackoverflow.com/questions/4371912
复制相似问题