c语言define用法是什么?

 我来答
鲨鱼星小游戏
高粉答主

2021-05-20 · 最爱分享有趣的游戏日常!
鲨鱼星小游戏
采纳数:2708 获赞数:238429

向TA提问 私信TA
展开全部

1、简单的define定义#define MAXTIME 1000

一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写if(i<MAXTIME){.........}

编译器在处理这个代码之前会对MAXTIME进行处理替换为1000。

这样的定义看起来类似于普通的常量定义CONST,但也有着不同,因为define的定义更像是简单的文本替换,而不是作为一个量来使用,这个问题在下面反映的尤为突出。

2、define的“函数定义”

define可以像函数那样接受一些参数,#define max(x,y) (x)>(y)?(x):(y);

这个定义就将返回两个数中较大的那个,看到了吗?因为这个“函数”没有类型检查,就好像一个函数模板似的,当然,它绝对没有模板那么安全就是了。可以作为一个简单的模板来使用而已。

C语言中无参宏定义的一般形式:

#define 宏名 字符串,其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令。“define”为宏定义命令。“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。

例如: #define M (a+b) 它的作用是指定标识符M来代替表达式(a+b)。在编写源程序时,所有的(a+b)都可由M代替,而对源程序作编译时,将先由预处理程序进行宏代换,即用(a+b)表达式去置换所有的宏名M,然后再进行编译。

休闲娱乐助手之星M
2021-05-20 · TA获得超过53.8万个赞
知道大有可为答主
回答量:2857
采纳率:100%
帮助的人:113万
展开全部

1、#ifdef:

如果有定义的#ifdef的一般形式为:#ifdef 宏替换名 语句段 #endif

含义为:如果宏替换名已被定义过,则对“语句段”进行编译;如果未定义#ifdef后面的宏替换名,则不对语句段进行编译。


2、#ifndef:

如果无定义的#ifndef的一般形式为:#ifndef 宏替换名 语句段 #endif

含义为:如果未定义#ifndef后面的宏替换名,则对“语句段1”进行编译;如果定义#ifndef后面的宏替换名,则不执行语句段。


3、#undef:

#undef命令可以删除事先定义了的宏定义。

#undef命令的一般形式如下:#undef 宏替换名

c语言中define作为英文单词的含义:

define是一个英语单词,动词、名词,作动词时意为“ 定义;使明确;规定”,作名词时意为 “(Define)人名;(英)德法恩;(葡)德菲内”。

短语搭配:

flow define流程定义

Define Mask定义罩框 ; 界说罩框

define byte[计]定义字节 ; 定义字节指令 ; 伪指令 ; 字节定义

以上内容参考 百度百科-define百度百科-define  

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2021-05-20 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:167万
展开全部

是定义的意思,将一个变量强制定义为你想要的值。如#define PI 3.14就是将PI的值定义成3.14,这样在程序里看到PI就可以替换成3.14了。

在程序执行期间其值可以改变的量称为变量,变量类型又分为系统变量和用户自定义变量。

define可以像函数那样接受一些参数:#define max(x,y) (x)>(y)?(x):(y);

这个定义就将返回两个数中较大的那个,因为这个“函数”没有类型检查,就好像一个函数模板似的,当然,它绝对没有模板那么安全就是了。可以作为一个简单的模板来使用而已。

C语言中无参宏定义的一般形式为:

#define 宏名 字符串 

其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令,“define”为宏定义命令。“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。

例如:#define M (a+b) 它的作用是指定标识符M来代替表达式(a+b)。在编写源程序时,所有的(a+b)都可由M代替,而对源程序作编译时,将先由预处理程序进行宏代换,即用(a+b)表达式去置换所有的宏名M,然后再进行编译。

以上内容参考:百度百科-define

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
闲闲谈娱乐
高能答主

2021-05-20 · 用力答题,不用力生活
知道大有可为答主
回答量:9505
采纳率:100%
帮助的人:157万
展开全部

1、简单的define定义#define MAXTIME 1000

一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写if(i<MAXTIME){.........}

编译器在处理这个代码之前会对MAXTIME进行处理替换为1000。

这样的定义看起来类似于普通的常量定义CONST,但也有着不同,因为define的定义更像是简单的文本替换,而不是作为一个量来使用,这个问题在下面反映的尤为突出。

2、define的“函数定义”

define可以像函数那样接受一些参数,#define max(x,y) (x)>(y)?(x):(y);

这个定义就将返回两个数中较大的那个,看到了吗?因为这个“函数”没有类型检查,就好像一个函数模板似的,当然,它绝对没有模板那么安全就是了。可以作为一个简单的模板来使用而已。

c语言形式

C语言中无参宏定义的一般形式为:#define 宏名 字符串,其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令。“define”为宏定义命令。“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。

例如: #define M (a+b) 它的作用是指定标识符M来代替表达式(a+b)。在编写源程序时,所有的(a+b)都可由M代替,而对源程序作编译时,将先由预处理程序进行宏代换,即用(a+b)表达式去置换所有的宏名M,然后再进行编译。

以上内容参考:百度百科-define

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小耳朵爱聊车
高粉答主

2021-05-20 · 说的都是干货,快来关注
知道大有可为答主
回答量:7378
采纳率:100%
帮助的人:309万
展开全部

1、#ifdef:

如果有定义的#ifdef的一般形式为:#ifdef 宏替换名 语句段 #endif

含义为:如果宏替换名已被定义过,则对“语句段”进行编译;如果未定义#ifdef后面的宏替换名,则不对语句段进行编译。

2、#ifndef:

如果无定义的#ifndef的一般形式为:#ifndef 宏替换名 语句段 #endif

含义为:如果未定义#ifndef后面的宏替换名,则对“语句段1”进行编译;如果定义#ifndef后面的宏替换名,则不执行语句段。

3、#undef:

#undef命令可以删除事先定义了的宏定义。

#undef命令的一般形式如下:#undef 宏替换名

c语言中define作为英文单词的含义:

define是一个英语单词,动词、名词,作动词时意为“ 定义;使明确;规定”,作名词时意为 “(Define)人名;(英)德法恩;(葡)德菲内”。

短语搭配:

flow define流程定义

Define Mask定义罩框 ; 界说罩框

define byte[计]定义字节 ; 定义字节指令 ; 伪指令 ; 字节定义

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式