D:\Keil\keil--32\ARM\ARMCC\Bin\..\include\stdio.h(556): error: #20: identifier "__va_list" is undefined
时间: 2023-11-05 15:06:04 浏览: 65
这个错误出现的原因是在使用可变参数函数时,编译器无法找到__va_list的定义。__va_list是一个结构体类型,用于存储可变参数的信息。通常情况下,__va_list的定义在stdarg.h头文件中。因此,解决这个错误的方法是在使用可变参数函数之前,包含stdarg.h头文件。如果已经包含了stdarg.h头文件,那么可能是因为编译器版本过低,不支持可变参数函数。此时,需要升级编译器版本或者使用不需要可变参数的函数。
相关问题
C: Keil v5 ARM ARMCC include stdbool.h contains an incorrect path
如果您在使用 Keil v5 ARM ARMCC 编译器时遇到了 stdbool.h 路径不正确的问题,可以尝试以下方法:
1. 确保您的编译器路径设置正确:在 Keil 菜单栏中选择“Options for Target”,然后选择“C/C++”选项卡,在“Include Paths”中添加正确的路径。
2. 检查您的编译器版本是否与您的 Keil 版本兼容。如果不兼容,您可以尝试更新编译器版本或使用与您的 Keil 版本兼容的编译器。
3. 检查您的 stdbool.h 文件是否存在于正确的路径中。如果不在,请下载正确的 stdbool.h 文件,并将其放置在正确的路径中。
4. 检查您的代码中是否正确地包含了 stdbool.h 文件。如果没有,请确保在代码中正确地包含了 stdbool.h 文件,并使用正确的路径。
如果以上方法都无法解决问题,请尝试在 Keil 官方论坛或者 ARM 开发者社区中寻求帮助。
C:\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h(232): error: #85: invalid storage class for a parameter
这个错误是由于在函数参数的声明中使用了无效的存储类导致的。在C语言中,函数参数的存储类只能是auto、register、static或extern,而不能是其他的存储类。
在C:\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h文件的第232行,可能存在一个函数声明或定义,其中的参数使用了无效的存储类。你需要检查该文件并修复这个错误。