C#中#define后面只加一个参数的解释
作者:passtome 发布时间:2022-09-06 07:23:55
#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 " );
#endif
...
当你程序完成之后。可以把#define DEBUG
一行用注释屏蔽掉。这样在编译的时候就不会把debug部分也编译进去了。
C#中#define后面直接加一个名词是什么意思?
定义宏,并在预处理过程中将其替换为空字符串(即删除)。
这样做主要是为了标记某些内容,使程序阅读者能够清楚标记表明的意义,同时又不影响被编译的源代码。
来源:https://blog.csdn.net/passtome/article/details/7928333


猜你喜欢
- 1.循环遍历private void GetControls(Control fatherControl){ Co
- 这里我们通过Apache Commons CLI来完成目标功能,废话不多说直接上代码所需的maven依赖<dependency>
- 这几天在上海出差,忙里偷闲学习了一下Apk的反编译工具的基本使用。下面就简单介绍一下如何将我们从网上下载的Apk文件进行反编译得到我们想要获
- 您好,我是贾斯汀,欢迎又进来学习啦!【学习背景】学习Java的小伙伴,都知道想要提升个人技术水平,阅读JDK源码少不了,但是说实话还是有些难
- Spring @RequestParam对象绑定在Spring中,如果在方法参数列表中使用@RequestParam标注多个参数,会让映射方
- 完成支付宝支付、查询的接口之后,我们应该还需要定时与支付宝进行对账,以确保商户系统的订单信息是正确的,想知道支付宝支付、查询接口实现过程的亲
- 这篇文章主要介绍了Java import导入及访问控制权限修饰符过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- 今天做项目的时候,遇到一个问题,如果我调用某个服务的接口,但是这个服务挂了,同时业务要求这个接口的结果是必须的,那我该怎么办呢,答案是通过h
- 前言最近在做一个公共相关的内容,公告里边的内容,打算做成配置化的。但是考虑到存储到数据库,需要建立数据库表;存储到配置组件中,担心配置组件存
- 前言这周接到一个需求,需要在应用从后台切换到前台时,展示我们的广告。展示页面其实可以复用以前的开屏广告页,唯一的问题就是如何监听应用从后台切
- 本文是利用ZXing.Net在WinForm中生成条形码,二维码的小例子,仅供学习分享使用,如有不足之处,还请指正。什么是ZXing.Net
- @property可以将python定义的函数“当做”属性访问,从而提供更加友好访问方式,但是有时候setter/deleter也是需要的。
- HttpServletRequest对象代表客户端的请求,当客户端通过HTTP
- 1、安装依赖<dependency> <
- 一、 应用程序直接建立数据库连接模型应用程序直接每次访问数据库时,都建立创建一个数据库的链接,这样每次建立这样的连接都需要耗费的资源,当同时
- 什么是JWT,它是一种对API的保护方案,为什么要进行保护呢防泄漏:你肯定不希望你的数据能被别人随意调用,比如公司的机密信息,不可能每个人都
- 本文实例讲述了C#中文随机数实现方法。分享给大家供大家参考。具体如下:/// <summary>/// 随机中文码/// <
- Spring Boot包含许多附加功能,可帮助您在将应用程序投入生产时对其进行监视和管理。可以选择使用HTTP端点或JMX管理和监视您的应用
- 1.URI与URLURI(Uniform Resource Identifier,统一资源标志符),表示web上的每一种可用资源,具体的东西
- 本文实例讲述了C#自定义类型强制转换的用法。分享给大家供大家参考。具体分析如下:先来举一个小例子类定义:public class MyCur