首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

变量名能和函数名相同吗?该如何解决

2012-02-04 
变量名能和函数名相同吗?c/c++变量名能和函数名相同吗?why?doublefac(intn){inti1doublefac1for(i1i

变量名能和函数名相同吗?
c/c++变量名能和函数名相同吗?why?
double   fac(int   n)
{
          int   i=1;
          double   fac=1;
          for(i=1;i <=n;++i)
          {      
                    fac=fac*i;
          }
          return(fac);
}

int   main()
{
        int   n;
        double   fac;
        scanf( "%d ",&n);
        fac=fac(n);
        printf( "%.3f ",fac);
        return   0;
}

[解决办法]
全局变量名和函数名不能相同。此外,若局部变量名与全局变量名或函数名相同,则在该局部变量作用范围内不能使用相应的全局变量或函数。
--------------------------------------------
也就是在同一个作用域范围内不能引入两个相同的名字,因为会引起解析冲突。

若局部变量名与全局变量名或函数名相同,则在该局部变量作用范围内,也不是不能使用对应的全局量,可以用block

比如 int i = 0;
int main()
{
int i;

// 此处只有local 的i可见

// open a new block
{
// 此处则只有全局的i 可见
}
}
[解决办法]
写代码的可贵之处就是规范性,老老实实的写代码,对你而言是没有坏处的。

过多的去抠语法,吃亏的肯定是你自己,大部分编译器并不是全部支持 C 的全部语法的。

刚开始写代码应该在健壮性、可读性、效率上苦下功夫,很多东西自然而然就能体会。

慢慢的你所关注的就不再是这些琐碎的语法,而是整体的架构。这是一个质的提高。

这是别人告诉俺的,不过不幸的是俺还是处在初级阶段,遗憾!!!

热点排行