首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何在C中取消一个变量以允许在以后使用不同数据类型的同名呢?

我如何在C中取消一个变量以允许在以后使用不同数据类型的同名呢?
EN

Stack Overflow用户
提问于 2010-12-06 23:11:18
回答 4查看 10.1K关注 0票数 5

我希望在C程序中使用相同的变量名,在C程序中使用不同的数据类型,而不进行转换。

,我真的很想这么做,别问为什么。

那我该怎么做呢?

如果这个变量在做预防性撤销时不存在,我如何处理这个错误?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-06 23:15:12

你不能。你能得到的最接近的是创建单独的作用域,并在其中使用相同的变量名:

代码语言:javascript
复制
 {
     int val;

     // do something with 'val'
 }

 {
     double val;

     // do something with 'val'
 }
票数 15
EN

Stack Overflow用户

发布于 2010-12-06 23:15:21

我认为这在C中是不可能的,我能想象的唯一方法就是编写程序,这样两个不同的变量存在于完全不同的范围内。例如当您在不同的函数中使用它们时。除此之外,您还需要使用第一个变量,选择一个不同的名称。

我的建议-如果你绝对要求在同一范围内存在-将在名称前加上一个识别字母的类型,所以:

代码语言:javascript
复制
int iVal;
double dVal;
票数 1
EN

Stack Overflow用户

发布于 2010-12-06 23:17:20

当您使用已经存在的名称定义变量时,新定义“隐藏”旧变量。

代码语言:javascript
复制
#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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4371912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档