几个C++全局变量的问题
我有一个主CPP名为M.cpp,一个子头文件D.h和子CPP名为D.cpp其中M包含了D.h,D.cpp包含了D.h1.在D.cpp中定义intk(D.h没有声明),M中...
我有一个主CPP名为M.cpp,一个子头文件D.h和子CPP名为D.cpp
其中M包含了D.h,D.cpp包含了D.h
1. 在D.cpp中定义int k(D.h没有声明),M中无法使用该变量
2. 在D.h中定义 int k(D.cpp中没有任何和k有关的)。在M中直接用 k=0;会报错重定义?
3. D.h中定义int k,D.cpp中 int k也会重定义。只有D.h中用extern声明,D.cpp用 int k定义才能在M中正确
使用(D.cpp必须在全局变量声明,如果用static或者在函数内定义同样无法用)。变量的作用域是跟他 声明有关还是定义有关呢?
包含头文件的方式联合不同的源文件,究竟是什么一种组织关系呢?感觉之前学的作用域生存周期都有点被头文件搞乱了 展开
其中M包含了D.h,D.cpp包含了D.h
1. 在D.cpp中定义int k(D.h没有声明),M中无法使用该变量
2. 在D.h中定义 int k(D.cpp中没有任何和k有关的)。在M中直接用 k=0;会报错重定义?
3. D.h中定义int k,D.cpp中 int k也会重定义。只有D.h中用extern声明,D.cpp用 int k定义才能在M中正确
使用(D.cpp必须在全局变量声明,如果用static或者在函数内定义同样无法用)。变量的作用域是跟他 声明有关还是定义有关呢?
包含头文件的方式联合不同的源文件,究竟是什么一种组织关系呢?感觉之前学的作用域生存周期都有点被头文件搞乱了 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询