我声明的结构中缺少什么

时间:2018-09-23 21:28:58

标签: c function structure

我的一个简单程序遇到了一个错误,该错误只是应该将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){

已在下面回答以供将来参考

2 个答案:

答案 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的类型。