希望我正確地解釋了這一點,但是我遇到了一個奇怪的問題,它與我正在處理的程序中的結構有關。總之,我有兩個結構設置如下:結構元素值在執行過程中被覆蓋
ParentStructure.h
#include "ChildStructure.h"
struct ParentStructure {
struct ChildStructure A;
struct ChildStructure B;
struct ChildStructure C;
struct ChildStructure D;
};
ChildStructure.h
struct ChildStructure {
short A;
short B;
};
,我遇到的問題是,的一個ParentStructure
(即ParentSturcutre.D
)中的變量具有值D.A
和D.B
,它們被覆蓋掉了durin g執行程序。在我看來,這是由於結構設計的方式,因爲子結構中的兩個值(即A.A
和A.B
)是相同的,所以事情正常運行;但是,當它們不同時,D.A
和D.B
值在更改爲D.A
或D.B
後程序執行時恢復爲其原始值。
在的功能是如何被稱爲術語,整體流程如下:
的main.c
#define WorkingDefaultAA 10 /* Program executes correctly */
#define WorkingDefaultAB 10
#define NonWorkingDefaultAA 10 /* Program does not execute correctly */
#define NonWorkingDefaultAB 8
struct ParentStructure *data;
int main(int argc, char *argv[]) {
/* Set the default values for the data */
while (true) {
FunctionA(data);
}
}
ProcessData.c
void FunctionA(struct ParentStructure *data) {
/* Use data */
FunctionB(data);
}
void FunctionB(struct ParentStructure *data) {
data->D.A = 1;
data->D.B = 1;
}
不限關於可能發生什麼的想法?
使用您的調試器支持數據斷點。 – 2011-04-01 01:36:11
不是沒有看到(a)有問題的代碼(b)'(struct ChildStructure)'的定義。 – geekosaur 2011-04-01 01:38:14
'ParentStructure.h'上面是否包含'ChildStructure.h'? – 2011-04-01 01:42:48