原因:这种情况下很可能是头文件的预定义声明重复了。比如写了两个LED文件,一个是LED1.c,另一个是LED2.c。他们俩都是从LED.c移植过来的,然后头文件忘了修改,里面的预定义都是
#ifndef __LED_H_
#define __LED_H_
........
#endif
这时候如果在在main.c中包含头文件时,先包含了LED1.h,后包含了LED2.h,在头文件预定义防止重复包含的作用下,就会导致LED2.h中的函数和变量声明失效,从而导致上面的警告。同理,如果先包含了LED2h,后包含了LED1.h,就会导致LED1.h的有关函数出现警告。我正是在main.c中切换头文件的包含顺序时发现的这一问题。
版权声明:本文为CSDN博主「Cc1924」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42731705/article/details/115270040
原因:这种情况下很可能是头文件的预定义声明重复了。比如写了两个LED文件,一个是LED1.c,另一个是LED2.c。他们俩都是从LED.c移植过来的,然后头文件忘了修改,里面的预定义都是
#ifndef __LED_H_
#define __LED_H_
........
#endif
这时候如果在在main.c中包含头文件时,先包含了LED1.h,后包含了LED2.h,在头文件预定义防止重复包含的作用下,就会导致LED2.h中的函数和变量声明失效,从而导致上面的警告。同理,如果先包含了LED2h,后包含了LED1.h,就会导致LED1.h的有关函数出现警告。我正是在main.c中切换头文件的包含顺序时发现的这一问题。
版权声明:本文为CSDN博主「Cc1924」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42731705/article/details/115270040
暂无评论