存在正文时不允许未命名的原型参数 C
时间: 2023-09-19 08:07:09 浏览: 182
在 C 语言中,当函数的参数存在正文时,必须对函数的参数进行命名,否则编译器会报错。例如,下面是一个函数的定义:
```c
void foo(int); // 错误的函数定义,参数未命名
```
上述代码中,函数 `foo` 的参数类型为 `int`,但是参数没有命名,这是不合法的。
正确的函数定义应该是:
```c
void foo(int x) {
// 函数体
}
```
上述代码中,我们对函数 `foo` 的参数进行了命名,所以编译器不会报错。
需要注意的是,如果函数的参数没有正文(即函数体为空),可以省略参数名。例如:
```c
void bar(int); // 合法的函数定义,参数没有正文
```
但是在实际编程中,为了代码的可读性和可维护性,建议始终为函数的参数命名,即使参数没有正文。
相关问题
在VS2019中编写 Status InitList_Sq(SqList& L) 报错 存在正文时不允许未命名的原型参数
这个错误通常是因为在函数定义中使用了未名的原型参数。在VS2019中编写函数定义时,需要为原型参数提供参数名。
要解决这个问题,你可以在函数定义中为原型参数添加参数名。例如,假设你的函数原型是这样的:
```cpp
Status InitList_Sq(SqList&); // 原型声明
```
那么在函数定义时,需要为原型参数添加参数名,如下所示:
```cpp
Status InitList_Sq(SqList& L) // 函数定义
{
// 函数实现
}
```
通过为原型参数添加参数名,应该可以解决这个错误。希望这可以帮助到你!如果还有其他问题,请随时提问。
当函数有函数体时,未命名的原型参数是不被允许的,怎么解决
在函数定义之前,可以提供函数原型(也称为函数声明),以指定函数的参数类型和返回类型。这样可以解决未命名的原型参数的问题。
例如,下面是一个函数原型的例子:
```c
int add(int a, int b);
```
在这个例子中,我们声明了一个名为`add`的函数,它接受两个`int`类型的参数,返回一个`int`类型的值。
如果我们需要在函数定义之前使用这个函数,可以先提供一个函数原型:
```c
int add(int, int);
```
这个函数原型中的参数名可以省略,只需要指定参数的类型即可。
然后,在函数定义时,需要使用与函数原型中相同的参数类型和返回类型。例如:
```c
int add(int a, int b) {
return a + b;
}
```
在这个函数定义中,我们使用了与函数原型相同的参数类型和返回类型,并且为参数指定了名称。这样就可以避免未命名的原型参数的问题。