【发布时间】:2019-11-07 12:33:13
【问题描述】:
print_array(int parray[], int size) 中存在构建错误。为什么错误列表显示:
missing type specifier - int assumed. Note: C++ does not support default-int
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int arr_size;
int a1[] = { 1, 2, 5, 3, 5, 4, 6, 9, 11 };
arr_size = sizeof(a1) / sizeof(a1[0]);
printf("Elements in original array are: ");
print_array(a1, arr_size);
int size = arr_size, index = 0;
for (int i = 0; i < size; i++) {
if (a1[i] % 2 == 0) {
int temp = a1[index];
a1[index] = a1[i];
a1[i] = temp;
index++;
}
}
printf("\nElements in new array are: ");
print_array(a1, arr_size);
}
print_array(int parray[], int size)
{
int i;
for (i = 0; i < size - 1; i++) {
printf("%d, ", parray[i]);
}
printf("%d ", parray[i]);
printf("\n");
}
【问题讨论】:
-
您的确切错误信息是什么?你说的默认整数是什么意思?
-
print_array没有定义甚至声明。你期望它做什么?给函数起个好名字是件好事,但它们不会自己写。 -
欢迎来到 Stack Overflow。请阅读the help pages,获取the SO tour,了解how to ask good questions,以及this question checklist。在询问有关构建错误的问题时,请始终包含所有错误输出的完整和完整的复制粘贴(作为文本)。
-
现在,对于您的问题,C 和 C++ 是不同的语言,并且对于函数声明等内容有不同的规则。在 C++ 中,所有函数都必须有一个显式的返回类型,并且所有函数都需要在使用之前声明。 (部分)错误消息告诉我们您正在将其构建为 C++ 程序,而不是 C。
-
这是 C 还是 C++?只标记一个。
print_array没有返回类型,这在 C++ 中无效如果 C(如标题所示)那么您需要编译为 C,而不是 C++
标签: c function declaration return-type