当前位置:  技术问答>linux和unix

请教全局变量问题!

    来源: 互联网  发布时间:2015-11-06

    本文导语:  代码 [a.h] class CA1 { ... }; extern int g_nCount; [a.cpp] int g_nCount; [main.cpp] #include "a.h" int main(int argc, char** argv) {    g_nCount = 0; } 编译过程没有问题,但执行时不行错误信息:segmentation fault。开始我将全局变量放...

代码
[a.h]
class CA1
{
...
};
extern int g_nCount;

[a.cpp]
int g_nCount;



[main.cpp]
#include "a.h"

int main(int argc, char** argv)
{
   g_nCount = 0;
}

编译过程没有问题,但执行时不行错误信息:segmentation fault。开始我将全局变量放在单独的一个头文件中,可编译都通不过,请问该如何使用?

|
在c区的一个帖子中有人提出了一个匪夷所思的现象:
同名全局变量可以在多个c文件中同时定义并且编译连接通过,唯一前提是最多只有一个地方把这个全局变量初始化……

无限迷惑中……

|
yzx1983(捕风捉影) ,是吗?哪里,去开开眼。

|
[a.h]
class CA1
{
...
};
extern int g_nCount; //声明

[a.cpp]
int g_nCount;        //定义
标准的全局变量,没有问题.

|
大雪啊,如果你的头文件被包含多次,
然后变量就被声明多次的话,那么说明你的头文件本身就有问题啊,
说明你没有加上防止重复定义的开关。。。

|
根据楼主的提示,俺认认为是指针的问题,当然不在楼主给出的代码里,应该在其他的部分

|
segmentation fault跟你那个全局变量没关系的,至少你贴出来的这些代码是这样的.
全局变量不能放在头文件, 因为变量只能被声明一次, 如果头文件被包含多次, 变量将会被声明多次.

|
就贴出的代码看没有什么问题,看看别处吧。在main里多搞几个printf帮助定位错误的地方

|
不是全局变量问题,全局变量出错要么是redefine,要么是undefine.只要不在函数,类里面(。。。)的变量都叫全局变量,具体怎么定义看你自己的习惯。include相当于直接把文件代码贴上去。对于类的定义有种特殊规则SDR(single defination rule),BS的那本C++讲得比较细。

|
全局变量没有问题的,要不你用gdb跟一下吧,或者用core调试一下!

|
跟全局变量无关
你在头文件中只是声明全局变量,不会造成重复定义
即使重复定义,你编译也通不过阿
自己跟踪一下吧

|
断错误一般都是越界。

|
就给出的代码看
没有任何问题

|
yzx1983(捕风捉影)

原文中说的是可以在多个C文件中“声明”同一个全局变量,而不是“定义”

声明跟定义是不同的

    
 
 

您可能感兴趣的文章:

  • 逻辑地址、物理地址、线性空间、全局段、局部段 问题请教,高手指教了!!!!在线等,高手指教了!!!在线等!!!!!!!!
  • 请教:(static)静态变量和静态方法是什么意思?
  • 请教:使用什么命令查看导出的环境变量?
  • 请教个shell环境变量的问题
  • 请教:linux平台(redhat7.2)下的环境变量在哪里设置?
  • 请教进程与变量的问题
  • 请教关于环境变量的问题
  • 请教一奇怪的环境变量的问题
  • shell变量和子shell的问题请教
  • 请教:如何在两个javaBean之间传送变量
  • 基础问题,刚学的!请教,两个日期格式变量,我要求两个日期之间的天数,怎么求?
  • 请教 变量= { function:函数名};什么意思
  • 请教SuSE Linux的环境变量设置?
  • 请教:<xsl:template match="/">中,match得值可以是变量吗,如:match="$node"
  • 请教关于linux内存管理问题,如何给定义的变量指定固定内存段
  • 请教大虾们:在shell脚本中如何用expr连续进行多个变量之间的计算
  • 请教JSP变量在JavaScript中使用的问题.
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题 iis7站长之家
  • awk 输出值给变量请教!
  • shell和c之间的变量传递问题,请教!
  • 请教:整合apache/tomcat时设置JAVA_HOME/TOMCAT_HOME环境变量起什么作用?没有用到啊?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • 请教,请教,这个问题是为什么????
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教一个函数入口处的汇编问题(压栈问题)
  • 请教!出现这个提示是什么原因..是模块版本问题,还是其他问题..http://220.114.102.28/xitong/ProductShow.asp?ArticleID=82
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 请教一个opengl的问题
  • 请教两个redhat9问题
  • 请教kdevelop的问题
  • 送上100分问题请教,同时学习一下进程通讯问题,望各位不吝赐教
  • 请教linux 下的adsl拨号问题.
  • 请教unix常用命令命令问题
  • 请教,帖子回复的显示问题
  • 请教关于sendto问题
  • 请教linux共享上网的问题!!!在线等,问题解决马上结贴
  • 有在用AXIS的朋友吗?请教一个问题
  • 高分请教,n简单的问题急急!!!
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教这种循环的执行过程
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教两个shell


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3