首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >c++标头包含多个变量指针

c++标头包含多个变量指针
EN

Stack Overflow用户
提问于 2012-03-19 03:55:39
回答 3查看 575关注 0票数 0

我遇到了这样的问题:

我有一个头文件:

代码语言:javascript
运行
复制
//first variant:  
#ifndef LIBRARIES_H
#define LIBRARIES_H
 const char a='4';    
 #endif // LIBRARIES_H

我将其包含在几个.cpp文件中。一切都运行得很完美。

但是突然,如果我声明一个指针:

代码语言:javascript
运行
复制
//second variant:
#ifndef LIBRARIES_H
  #define LIBRARIES_H
 const char *a="asdfgh";
 #endif // LIBRARIES_H

请注意,我只声明了其中的一个(变体)。

代码语言:javascript
运行
复制
I DECLARE a only once(I tried to change name for sadfgh or asdfg).

当我尝试第二个变体时,我先删除,反之亦然。

如果我声明一个指向字符串的指针,我会得到错误"multiple inclusion of variable“。我使用qt编译它。我已经删除并重新编译了几次项目。

当然,我可以在main()函数中定义它,但是我想知道这个问题的原因是什么?为什么我不能在头文件中声明指针,然后在几个源代码文件中包含它?

EN

Stack Overflow用户

发布于 2012-03-19 03:59:25

Edit2显然,我之前的建议是改变

代码语言:javascript
运行
复制
const char* a = "asdfgh"

代码语言:javascript
运行
复制
const char[6] a= "asdfgh"

很管用。

我仍然在研究它,但是当你声明一个指针时,你只是说这个指针是常量,而不是它所指向的内存。当你声明一个数组时,你是在说const后面的数据也是不可变的。我正在进一步调查。

Edit3:this的第二段解释了发生了什么。

此外,“干杯”的答案很好地解释了这一点。

票数 3
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9761718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档