c - 数字常量前应有“;”、“,”或“)”...我在 C 程序中遇到此错误
问题描述
这是我根据先前的答案编写的 C 程序我已将变量名称从 SIZE 更改为 arrSize,但在编译代码时仍然显示错误
行:4 列:17 [错误] 数字常量前应为 ';'、',' 或 ')'
#include<stdio.h>
#include<stdlib.h>
#define arrSize 8 //I'm getting error in this line
void merge(int a[], int temp[], int left, int mid, int right);
void display(int [], int);
void msort(int [], int [], int, int);
void merge_sort(int [], const int);
int main() {
int a[arrSize] = {-1, 2, 9, 1, 7, 2, 5, 0};
int temp[arrSize];
printf("Array before sorting:\n");
display(a, arrSize);
merge_sort(a, arrSize);
printf("Array after sorting:\n");
display(a, arrSize);
return 0;
}
void merge_sort(int a[], int temp[], const int arrSize) {
msort(a, temp, 0, arrSize-1);
}
void display(int a[], const int arrSize) {
int i;
for(i = 0; i < arrSize; i++) {
printf("%d", a[i]);
printf("\n");
}
}
解决方案
您正在使用与常量名称一致的参数名称
#define arrSize 8
例如
void merge_sort(int a[], int temp[], const int arrSize) {
^^^^^^^
在预处理阶段之后,编译器认为这个声明就像
void merge_sort(int a[], int temp[], const int 8) {
^^^
所以要么更改参数名称,要么更改常量的名称。
为由所有大写字母构建的清单常量分配名称是个好主意。例如
#define ARR_SIZE 8
推荐阅读
- javascript - 从给定原型获取 json 结果
- python - 高分文件:将字符串列表转换为整数列表会导致 int() 以 10 为底的无效文字:''
- angular - 在角度指令单元测试中注入服务
- sql - 如何将此查询转换为内部联接
- android-gradle-plugin - Android项目更新以及如何解决:“无法解决:监视器”?
- jquery - 更改图中文本和图像的不透明度
- electron - 电子单元测试多窗口
- gradle - Gradle SSH 插件将文件从本地传输到远程 vm
- c++ - 如何将 AERT_Allocate 与 std:vector 一起使用
- linux - 我有一个服务器,我的团队使用相同的用户名。我想追踪谁触发了特定命令?