【问题标题】:Function prototype in CC中的函数原型
【发布时间】:2018-10-06 20:56:03
【问题描述】:

让我们假设以下程序:

#include <stdlib.h>
int main()
{
  int a,b,;
  scanf("%d",&a);
  scanf("%d",&b);
  c = func(a,b);
  printf("%d",c);
  return 0;
}

int func(int a, int b)
{
  return a+b;
}

现在,让我们假设以下选项用于定义函数“func”的原型。

选项 1:

int func(int a, int b);

选项 2:

int func(int , int);

选项 1 和 2 有什么区别?它们的效果完全一样吗?

【问题讨论】:

标签: c ansi


【解决方案1】:

1 和 2 完全相同。 C 编译器允许您输入参数名称,但它们是任意的:如果它们是合法名称(例如,它们不能是关键字,或包含前导双下划线),编译器将忽略它们。

【讨论】:

    【解决方案2】:

    这两个选项是相同的,但第一个提供了更多关于参数是什么的信息(对于更高级的功能)。

    clang-tidy 有一条规则警告不要写选项 2。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-06
      • 1970-01-01
      • 2012-07-15
      相关资源
      最近更新 更多