我有一個問題,當我創建一個頭文件,我定義三個結構! 問題是結構之間的依賴關係。 我嘗試使用類似c語法,但編譯代碼時收到錯誤。TinyOS nesC - typedef nx_struct依賴
錯誤是:
/home/user/top/t2_cur/tinyos-2.x/tos/platforms/telosb/mac/tkn154/timer/Alarm32khzTo62500hzTransformC.nc:53:2: 警告:#警告「警告:MAC時序不符合標準!」 化妝:* [exe0]錯誤1
這是我的代碼:
#define PRECISION nx_float
typedef nx_struct neurA neuronA;
typedef nx_struct neurB neuronB;
typedef nx_struct neurC neuronC;
nx_struct neurB{
neurA in[2];
neurC out;
PRECISION trans_value;
PRECISION prop_value;
PRECISION delta;
PRECISION in_weight[2];
PRECISION out_weight[1];
}
nx_struct neurA{
neurB out[3];
PRECISION trans_value;
PRECISION delta;
PRECISION out_weight[3];
}
nx_struct neurC{
neurB in;
PRECISION trans_value;
PRECISION prop_value;
PRECISION delta;
PRECISION in_weight;
}
的結構neurB宣佈在其變量neurC和neurB內。如果我把neurB結構的聲明放在代碼中的所有其他結構之上,那麼錯誤是由其內部聲明neurb變量的neurC結構引起的。如果我顛倒了struct的聲明,那麼問題仍然存在。
我也嘗試了這種方式:
typedef nx_struct neurA{
neurB out[3];
PRECISION trans_value;
PRECISION delta;
PRECISION out_weight[3];
}neurA;
typedef nx_struct neurC{
neurB in;
PRECISION trans_value;
PRECISION prop_value;
PRECISION delta;
PRECISION in_weight;
}neurC;
typedef nx_struct neurB{
neurA in[2];
neurC out;
PRECISION trans_value;
PRECISION prop_value;
PRECISION delta;
PRECISION in_weight[2];
PRECISION out_weight[1];
}neurB;
我試過你的解決方案,但它不起作用。還有另一個問題。 struct neurB在其內部聲明變量neurC和neurB。如果我把neurB結構的聲明放在代碼中的所有其他結構之上,那麼錯誤是由其內部聲明neurb變量的neurC結構引起的。如果我顛倒了struct的聲明,那麼問題仍然存在。結構問題繼續與另一個原因。 –
在這個夜晚的這個時候,對我來說這聽起來太複雜了,所以我會通過。請記住,不管有多少箇中國盒子,在使用它之前,你必須先使內部盒子到位。 – user2692263