C代码枚举命名冲突原因?

查看:126
本文介绍了C代码枚举命名冲突原因?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

#include <stdio.h>

enum coordinate_type { RECTANGULAR = 1, POLAR };

int main(void)
{
        int RECTANGULAR;
        printf("%d %d\n", RECTANGULAR, POLAR);
        return 0;
}

Error:

warning: ‘RECTANGULAR’ is used uninitialized in this function [-Wuninitialized]
         printf("%d %d\n", RECTANGULAR, POLAR);

编译出来的文件执行结果是:0 2,原因是什么?`
OS: LinuxMint 17
GCC: version 4.8.4

解决方案

C语言枚举的实质是整数,SO

int RECTANGULAR = 1;
int POLAR = RECTANGULAR+1;

.. main(){
    int RECTANGULAR;
    printf("%d %d\n", RECTANGULAR, POLAR);
}

现在,想想你打印的是哪个变量?

其实就是局部变量和全局变量的关系了,同名时肯定是用的局部变量

这篇关于C代码枚举命名冲突原因?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆