我的一个简单程序遇到了一个错误,该错误只是应该将C结构中的值相加。 我没有发现我的代码有任何固有的错误,我将其粘贴一点。所有的分号和方括号似乎都是有序的,所以我的问题是,结构声明中缺少什么?
错误行:
TASK [debug] *****************************************************************************************************************************
ok: [pynet-sw5] => (item={'value': 0, 'key': u'packet_loss'}) => {
"msg": "1.1.1.1 is pingable from arista5.twb-tech.com with packet_loss = 0 out of 5 packets"
}
ok: [pynet-sw6] => (item={'value': 0, 'key': u'packet_loss'}) => {
"msg": "1.1.1.1 is pingable from arista6.twb-tech.com with packet_loss = 0 out of 5 packets"
}
ok: [pynet-sw7] => (item={'value': 4, 'key': u'packet_loss'}) => {
"msg": "1.1.1.1 is pingable from arista7.twb-tech.com with packet_loss = 4 out of 5 packets"
}
ok: [pynet-sw8] => (item={'value': 1, 'key': u'packet_loss'}) => {
"msg": "1.1.1.1 is pingable from arista8.twb-tech.com with packet_loss = 1 out of 5 packets"
程序:
Structure.c:7:20: error: expected identifier or ‘(’ before ‘struct’
struct addDistance(struct distance dist1, struct distance dist2){
已在下面回答以供将来参考
答案 0 :(得分:2)
struct addDistance(struct distance dist1, struct distance dist2){
应该是
struct distance addDistance(struct distance dist1, struct distance dist2){
您需要为结构包括整个类型struct distance
,或者因为您使用typedef,所以返回类型可能为dist
。所以也可能是
dist addDistance(struct distance dist1, struct distance dist2){
当编译器看到struct SOME_NAME
时,它期望struct SOME_NAME
是先前已声明的结构,或者您现在正在声明它。因此,您的编译器认为您正在尝试声明一个名为struct addDistance
的新结构。
答案 1 :(得分:1)
我认为问题是,您写了struct
而不是struct distance
作为函数的返回类型和dist3的类型。