gpt4 book ai didi

C,符号常量定义中出现错误(可能在函数参数中)

转载 作者:行者123 更新时间:2023-11-30 14:34:51 24 4
gpt4 key购买 nike

我在编写的 C 程序中遇到此错误:

progra10.c:48:25: error: expected ‘;’, ‘,’ or ‘)’ before numeric constant
#define LAST_INDEX ARRAY_SIZE - 1

program10.c:47:25: error: expected ‘;’, ‘,’ or ‘)’ before numeric constant
#define ARRAY_SIZE 20
^
program10.c:48:25: note: in expansion of macro ‘DATA_SIZE’
#define LAST_INDEX ARRAY_SIZE - 1
^~~~~~~~~~
program10.c:64:42: note: in expansion of macro ‘LAST_INDEX’
int sequential_search(int seq_data, int LAST_INDEX, int search_target,

我使用 GCC 编译器执行以下命令:

gcc -Wall -ansi -oprogram10.exe program10.c -lm

这是错误似乎引用的代码:

#define COURSE_NUMBER "C Programming" /* Class */
#define PROGRAM_NUMBER 10 /* Program Number */
#define PROGRAMMER_NAME "Name" /* Programmer's Name */
#define ARRAY_SIZE 20 /* Size of the array */
#define LAST_INDEX ARRAY_SIZE - 1 /* The last index in the array */

我不知道为什么会导致该错误。我已经检查了打开的评论、选项卡、打开的字符串等,但我无法修复此错误。编译时,此错误是唯一的错误,只是每次在 main 中的函数调用参数中使用 LAST_INDEX 时都会重复该错误。我知道我的程序的其余部分有错误,但编译甚至没有显示它们,让我相信它无法克服这个问题。

函数如下所示:

函数原型(prototype):

int  sequential_search(int seq_data, int LAST_INDEX, int search_target, 
int target_location);

函数调用:

sequential_search(seq_data, LAST_INDEX, search_target, target_location);

函数定义:

int sequential_search(int seq_data, int LAST_INDEX, int search_target,
int target_location)

感谢您的帮助!

最佳答案

问题是您试图声明函数参数调用 LAST_INDEX,但 LAST_INDEX 被定义为宏,因此会扩展为表达式。函数参数的声明符必须是单个标识符(您要为参数指定的名称),而不是表达式。

关于C,符号常量定义中出现错误(可能在函数参数中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58795904/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com