我在A类的cpp声明全局静态变量
static int a=0;
在B类的cpp文件中先声明调用一下extern static int a;
由于函数处理的需要,我想把a传给B的一个函数的
形参,函数声明如下
b(static int c);
编译出现两个错误,一个是bad storage,more 另一个是 than one class storage欢迎大家指点,全局静态变量在另一个类中怎么调用和把形参传给一个函数该 怎么声明

解决方案 »

  1.   

    1、定义全局静态变量没有任何必要,定义全局变量即可。
    2、全局变量有必要作为函数的参数进行传递吗?
    3、实在要使用
    void C×××::b(int c)
    {
    }
    调用 b(a);
      

  2.   

    在A的.h中声明
    extern int a;
    A的.cpp中声明: int a = 0;在B的CPP中
    include "A.h"void f()
    {
     printf("a=%d",a);
      

  3.   

    即然是全局变量(或者是全局静态变量),就根本没别要作为函数的参数传来传去,在什么地方都可用。再说了,函数声名中的参数应该不能用static,反正我没看到过,我认为这本来就是错误。
      

  4.   

    b(static int c);应该改为b(int c);
      

  5.   

    全局变量前加static表明只在该文件中使用,在其它文件中看不到这个变量,所以出错。将static去掉