关于全局变量的使用问题,请高手指教
//lex.h:structitem{...};staticstructitemsymtable[500];...//lex.cpp#include"lex.h"void...
//lex.h:
struct item{...};
static struct item symtable [500];
...
//lex.cpp
#include"lex.h"
void init()
{...}
...
//main.cpp
#include"lex.h"
void main()
{...}
...
g++ -g lex.cpp main.cpp -o lex
程序是这样子的。我想问在lex.cpp文件中初始化了symtable数组中一些项的值,在main()函数中想循环输出一部分,但是用gdb发现只有当程序进入lex.cpp中symtable中才是初始化以后的值,在main()函数中仍是未初始化的值。当程序再进入lex.cpp中的其他函数时又可以查出symtable是初始化后的值,这是为什么呢?
不加static连接会出现重复定义的错误。请高手指教 展开
struct item{...};
static struct item symtable [500];
...
//lex.cpp
#include"lex.h"
void init()
{...}
...
//main.cpp
#include"lex.h"
void main()
{...}
...
g++ -g lex.cpp main.cpp -o lex
程序是这样子的。我想问在lex.cpp文件中初始化了symtable数组中一些项的值,在main()函数中想循环输出一部分,但是用gdb发现只有当程序进入lex.cpp中symtable中才是初始化以后的值,在main()函数中仍是未初始化的值。当程序再进入lex.cpp中的其他函数时又可以查出symtable是初始化后的值,这是为什么呢?
不加static连接会出现重复定义的错误。请高手指教 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询