- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下代码向我发出警告:
initialization: address of static symbol 'myStruct' is used for symbol 'otherStruct'
警告出现在 SomeOtherStruct otherStruct 初始化的右括号/分号处。
typedef struct
{
U32BIT memberA;
U32BIT memberB;
} MyStruct;
typedef struct
{
U32BIT *memberAPtr;
U32BIT *memberBPtr;
} SomeOtherStruct;
static MyStruct myStruct;
int main(void)
{
SomeOtherStruct otherStruct =
{
&myStruct.memberA,
&myStruct.memberB
}; // <<-- warning given here.
// doing something with otherStruct
}如果我做
SomeOtherStruct otherStruct
static
然后问题就消失了。但我不想这样做,因为我不想SomeOtherStruct otherStruct
当它被传递到将存储它的另一个函数/文件时始终位于内存中。(SomeOtherStruct 来自一个库,该库需要使用指针列表对其进行初始化。)
为什么我的编译器给我这个警告,我能做什么或者我做错了什么?因为我根本没有看到这段代码有任何问题(QAC/MISRA-C 也没有看到任何问题,因为通常 QAC/MISRA-C 会提示)。
另外,可能没什么值(value),我的编译器是FUJITSU Softune Fs907s
最佳答案
如果您进行网络搜索:
"initialization: address of static symbol" "is used for symbol"
你会发现这个:
http://www.fujitsu.com/downloads/MICRO/fma/pdfmcu/softccmp-cm25-00202-2e.pdf
这显然是您所说的正在使用的同一编译器的手册。相关段落说:
W1020C %Z: address of static symbol `%D' is used for symbol `%D'
The address of a static variable is used as an initial value. It is possible to change the value of the static variable from the outside of the compile unit. Continues the compilation making the initialization valid.
这正是您所得到的:合法的 C,但您的编译器正在警告您。为什么感觉这个特定的事情值得警告,我不确定,但希望从这里您可以弄清楚如何避免警告或禁用它。
关于c - 初始化: address of static symbol 'myStruct' is used for symbol 'otherStruct' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19245783/
示例位于 ideone.com : int passByConstPointerConst(MyStruct const * const myStruct) int passByValueConst
我有一个类,我使用 std::mem_fn在辅助函数之间进行选择。 如果我缺少 & 为什么我的代码可以编译和运行在m_funcContainer减速?在代码中 &用 /**/ 注释掉myStruct/
我正在阅读有关数组/结构默认初始化值的信息,并有以下问题: 是 memset(&mystruct, 0, sizeof mystruct)与 mystruct = { 0 }; 相同? 如果不是,有什
我正在阅读有关数组/结构默认初始化值的内容,并有以下问题: memset(&mystruct, 0, sizeof mystruct) 是否与 mystruct = { 0 }; 相同? 如果不是,有
我正在阅读有关数组/结构默认初始化值的内容,并有以下问题: memset(&mystruct, 0, sizeof mystruct) 是否与 mystruct = { 0 }; 相同? 如果不是,有
这个问题在这里已经有了答案: Is it a good idea to typedef pointers? (15 个答案) 关闭 6 年前。 我在头文件中有这一行: typedef struct
我不断收到一个错误,如果我没有在定义之前预先声明使用的结构,那么应该会发生错误,但我做到了!!:“typedef struct Campeonato Campeonato; typedef结构乔戈乔戈
我正在尝试学习 objective-c 。 这些都在我的 .m 文件里 @interface TetrisEngine () @property (nonatomic, readwrite) stru
我总是看到人们这样使用它: struct myStruct{ ... }; void func(struct myStruct s){ ... } 但我是这样使用的,省略了“struct” voi
1: void f(mystruct *a) 2: void f(const mystruct *a) 从 1->2 更改函数签名会破坏 C 中的 API/ABI 吗? 改变 2->1 怎么样? 最佳
我是从Qt开始的,现在已经困扰了很长时间(据说是)。我确信这只是我在C++中看不到的东西。无论如何,请查看以下简单代码,并指出我在做什么错: typedef struct FILEHEADER {
我的服务器以 JSON 格式返回一组照片信息: "pics":[{"ID":182,"ID_member":39,"fn":"b69ea6f6c88b58c67a331aa3c5eaff81.jpg"
我正在尝试在项目中使用 STL 列表,但遇到以下问题。 我希望我的列表存储一个结构。比如这个 struct mystruct { int x; int y; }; 然后我使用迭代器像这
这个程序编译和链接: struct A{ int m; } void main() { A a; int x = a.m; } 虽然这不是: struct A{ int
我有一个 QMap与 myStruct { QString firstname; QString lastname; QString status; } 如何对 QMap 进行
我一直在关注 Go 编程语言之旅以熟悉这门语言,而这门语言的一个特性让我感到疑惑。 关于Struct Literals的步骤,他们解释说您可以通过多种方式实例化结构: type Vertex stru
我无法对编译时错误进行排序。我正在编译 C 项目。我的 main.c 文件有一个 #include,它可以在其中获取我在项目中使用的结构的定义。关键是每次我尝试编译我的代码时都会出现错误 struct
我在以下头文件中定义了一个名为 Spiketimesolver 的结构: #include #include "plot_support.h" struct Spiketimesolver {
我有一些可变状态需要在线程之间共享。我关注了concurrency section Rust 书的一部分,它在线程之间共享一个向量并对其进行变异。 我需要共享一个最终单态化的通用结构,而不是向量。这是
我有 MyStruct 对象列表。 struct Task { std::function _fn = nullptr; std::chrono::system_clock::time
我是一名优秀的程序员,十分优秀!