遇到一个bug不知道咋解决,求解答

Delay.h(1): warning C315: unknown #directive 'ifndef__DELAY_H__'
Delay.h(2): warning C315: unknown #directive 'define__DELAY_H__'
Delay.h(6): warning C312: misplaced endif control

'ifndef__DELAY_H__' 缺空格,修改为: ifndef 空格 _DELAY_H_

#ifndef __DELAY_H__
#define __DELAY_H__
...
#endif

#ifdef
#define
#endif
最后少了个#endif

1、ifndef/define与__DELAY_H__是不是没有空格呀,这种语句一般是没什么问题的
2、在文件最后要加上endif,不要忘了~

缺空格 和 endif

#ifndef   __DELAY_H__
#define  __DELAY_H__

#endif

#ifndef与_DELAY_H_间需要用空格隔开,下面define也是一样

第一个警告是 "unknown #directive 'ifndef__DELAY_H__'",它出现在文件 Delay.h 的第一行。这个警告的意思是编译器不认识 "#ifndef__DELAY_H__" 这个指令。这是由于在 #ifndef 指令和 DELAY_H 之间没有空格所导致的。为了解决这个问题,您可以在 #ifndef 和 DELAY_H 之间添加一个空格,这样编译器就能够正确地识别这个指令了。

第二个警告是 "unknown #directive 'define__DELAY_H__'",它出现在文件 Delay.h 的第二行。这个警告的意思是编译器不认识 "#define__DELAY_H__" 这个指令。这也是由于在 #define 指令和 DELAY_H 之间没有空格所导致的。为了解决这个问题,您可以在 #define 和 DELAY_H 之间添加一个空格,这样编译器就能够正确地识别这个指令了。

第三个警告是 "misplaced endif control",它出现在文件 Delay.h 的第六行。这个警告的意思是 #endif 指令放置的位置不正确。根据 C 语言的规定,#endif 指令应该放在函数定义之后。为了解决这个问题,您可以将 #endif 指令移动到函数定义之后的位置。

第一个警告是 "unknown #directive 'ifndef__DELAY_H__'",它出现在文件 Delay.h 的第一行。这个警告的意思是编译器不认识 "#ifndef__DELAY_H__" 这个指令。这是由于在 #ifndef 指令和 DELAY_H 之间没有空格所导致的。为了解决这个问题,您可以在 #ifndef 和 DELAY_H 之间添加一个空格,这样编译器就能够正确地识别这个指令了。

第二个警告是 "unknown #directive 'define__DELAY_H__'",它出现在文件 Delay.h 的第二行。这个警告的意思是编译器不认识 "#define__DELAY_H__" 这个指令。这也是由于在 #define 指令和 DELAY_H 之间没有空格所导致的。为了解决这个问题,您可以在 #define 和 DELAY_H 之间添加一个空格,这样编译器就能够正确地识别这个指令了。

第三个警告是 "misplaced endif control",它出现在文件 Delay.h 的第六行。这个警告的意思是 #endif 指令放置的位置不正确。根据 C 语言的规定,#endif 指令应该放在函数定义之后。为了解决这个问题,您可以将 #endif 指令移动到函数定义之后的位置。

你所描述的警告似乎源于预处理指令的错误使用。这些警告表示编译器无法识别你使用的预处理指令。让我们对照你给出的警告逐一分析:

  1. 'ifndef__DELAY_H__': 此处的问题是#ifndef和其后的宏之间没有空格。它应该是这样的:

    #ifndef __DELAY_H__
    
  2. 'define__DELAY_H__': 同样,#define和其后的宏之间也缺少空格。正确的写法是:

    #define __DELAY_H__
    
  3. misplaced endif control: 这个警告通常意味着#endif的位置不正确,或者与#ifndef#define指令的数量不匹配。

综合以上三点,你的Delay.h文件应该看起来像这样:

#ifndef __DELAY_H__
#define __DELAY_H__

// ... 你的头文件内容 ...

#endif

请确保#ifndef#define指令之间以及它们与#endif之间的代码没有其他的预处理指令错误。