C语言编译报错: error: extra tokens at end of #ifndef directive [-Werror]

这些错误信息表明在编译过程中,编译器遇到了带有额外标记的 #ifndef 指令。#ifndef 指令用于防止头文件内容被重复包含,通常格式为 #ifndef MACRO_NAME,后面应该紧跟宏定义的名称,不应该包含其他字符或标记。
错误信息中的 extra tokens at end of #ifndef directive 表示 #ifndef 指令后面有额外的标记。在你提供的代码中,DBG_ENTRY(fmt, args...)、DBG_DEBUG(fmt, args...) 等宏定义后面包含了额外的标记 (fmt, args...),这不符合预处理指令的语法。
要解决这个问题,你需要修改 module_spi.h 文件中的宏定义,确保 #ifndef 后面直接跟着宏定义的名称,不要包含任何参数。例如:
#ifndef DBG_ENTRY
#define DBG_ENTRY(fmt, args...) // 宏定义内容
#endif
#ifndef DBG_DEBUG
#define DBG_DEBUG(fmt, args...) // 宏定义内容
#endif
// 以此类推,对其他宏定义进行相同的修改
确保每个宏定义的 #ifndef 指令后面只有宏名称,没有其他字符或参数。这样修改后,应该可以解决编译错误。