C#中#define后⾯只加⼀个参数的解释
#define只加⼀个参数的解释
<stdio.h>⾥有:
#ifndef __STDIO_H
#define __STDIO_H
这个__STDIO_H代表什么?⽽define的⽤法不是后⾯加两个字符串吗,它这⾥却只加⼀个字符串,是什么意思?
还有很多头⽂件⾥都有如下语句
#if __STDC__
#define _Cdecl
#else
#define _Cdecl cdecl
#endif
__stdc__,cdecl代表什么?
⽐⽅说你#include进来⼀个stdio.h,再#include进来⼀个string.h。也许在string.h头⽂件⾥⼜include了stdio.h。这样你的程序中就include了两个stdio.h。定义了两个printf函数等等。
这就⿇烦了,编译会出错不说,就算编译过了也是浪费资源
加了⼀个#ifndef _STDIO_H的话。在#include进来的string.h中如果再试图include⼀遍stdio.h的话,由于事先在第⼀个stdio.h中已经定义了_STDIO_H这个宏。所以不满⾜#ifndef _STDIO_H这个条件,就不会编译第⼆次了。
#define后⾯不⼀定要加两个字符串。⼀个也⾏,加⼀个字符串如#define _STDIO_H , #define DEBUG等等,⼀般在编译前⽤来做开关。控制编译部分。上⾯所说的头⽂件中是⼀个例⼦。再举⼀个查错的例⼦
#define DEBUG
...
...
#ifdef DEBUG
fprintf( stderr , "Debug Message\n " );
include意思#endif
...
当你程序完成之后。可以把#define DEBUG⼀⾏⽤注释屏蔽掉。这样在编译的时候就不会把debug部分也编译进去了。
C#中#define后⾯直接加⼀个名词是什么意思?
定义宏,并在预处理过程中将其替换为空字符串(即删除)。
这样做主要是为了标记某些内容,使程序阅读者能够清楚标记表明的意义,同时⼜不影响被编译的源代码。
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。如果你想了解更多相关内容请查看下⾯相关链接
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论