This question already has answers here:
C function syntax, parameter types declared after parameter list

(7个答案)


2年前关闭。




这些C函数签名与我以前看到的不同。代码如下:
struct msg {
  char data[20];
};
struct pkt {
   int seqnum;
   int acknum;
   int checksum;
   char payload[20];
};

/**Now LOOK AT THESE FUNCTIONS**/
A_output(message)
  struct msg message;
{
  // blah blah blah
}

B_output(message)
  struct msg message;
{
   // blah blah blah
}

A_input(packet)
  struct pkt packet;
{
   // blah blah blah
}

我知道C函数的工作方式是return-value name(parameter/s)。这看起来不一样。以上功能采用什么参数?什么是退货类型?这些功能如何工作?

最佳答案

这些定义是函数定义的形式,在括号中带有标识符列表,后跟声明列表。省略的返回类型隐含等于int。现在,C标准不允许省略返回类型。

所以这个功能定义

A_output(message)
  struct msg message;
{
  // blah blah blah
}

对应于以下定义
int A_output( struct msg message)
{
  // blah blah blah
}

关于c - 这些C函数签名与我以前看到的不同。这些是做什么的,为什么要这样写? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46720422/

10-11 22:50