社区
数据结构与算法
帖子详情
确定下面宏定义中的问题
jokerman
2001-02-05 11:55:00
在C语言中,下面的宏定义存在什么问题,请告知,谢谢:
#define ISDIGIT(C) ((c>='0')&&(c<='9'))?1:0
...全文
104
2
打赏
收藏
确定下面宏定义中的问题
在C语言中,下面的宏定义存在什么问题,请告知,谢谢: #define ISDIGIT(C) ((c>='0')&&(c<='9'))?1:0
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wing_pn
2001-02-06
打赏
举报
回复
没什么大问题,tc 下
#define ISDIGIT(c) ((c>'0')&&(c<'9'))?1:0 /* 注意c字符的大小写*/
*/#include "stdio.h"
main()
{char a='3',b='a';
int q,w;
q=ISDIGIT(a);w=ISDIGIT(b);
printf("\n %d ,%d",q,w);
}
!!!假如有问题:
1.#define ISDIGIT(C) ((c>='0')&&(c<='9'))?1:0
你ISDIGIT(C)的'C'是大写,但实现是小写,c分大小写的,看我的程序
2.假如你是判断是否数字的话, <, > 应为<=, >=
3.假如用q=ISDIGIT(++a)之类的话,将会有不想出现的结果,最好用C++的inline函数
ed9er
2001-02-06
打赏
举报
回复
#define ISDIGIT(c) ( (c)>='0' && (c)<='9' )
?1:0可以省略,就算不省略,也应该加个括号
C语言
中
的
宏定义
简单
宏定义
简单的
宏定义
有如下格式: [#define指令(简单的宏)] #define 标识符替换列表 替换列表是一系列的C语言记号,包括标识符、关键字、数、字符常量、字符串字面量、运算符和标点符号。当预处理器遇到一个
宏定义
时,会做一个 “标识符”代表“替换列表”的记录。在文件后面的内容
中
,不管标识符在任何位置出现,预处理器都会用替换列表代替它。 不要在
宏定义
中
放置任何额外的符号,否则它们会被作为替换列表的一部分。一种常见的错误是在
宏定义
中
使用 = : #define N = 100 /*** .
C语言——
宏定义
一.预处理 编译一个C语言程序的第一步骤就是预处理阶段,这一阶段就是宏发挥作用的阶段。C预处理器在源代码编译之前对其进行一些文本性质的操作,主要任务包括删除注释、插入被#include进来的文件内容、定义和替换由#define 定义的符号以及
确定
代码部分内容是否根据条件编译(#if )来进行编译。”文本性质”的操作,就是指一段文本替换成另外一段文本,而不考虑其
中
任何的语义内容。宏仅仅是在C预处理阶段的一种文本替换工具,编译完之后对二进制代码不可见 二.
宏定义
用法 ①宏常量 我们最常使用到.
宏定义
的用法总结
概述
宏定义
是一个给定名称的代码片段,当我们使用这个名称的时候,预处理器会自动将其替换为
宏定义
的内容。
宏定义
有两种,一种是object-like
宏定义
,在使用的时候相当于一个数据对象;另一种是function-like,在使用的时候就像调用函数那样。
宏定义
的内容可以是任意的,甚至是C关键词(不可以的内容特例[预处理命令]defined,[c++ named operators]and_eq,bitand,bitor,compl,not,not_eq,or,or_eq,xor,xor_eq) 宏展开会
C语言
宏定义
详解
C语言
宏定义
详解
宏定义
_C语言
宏定义
常见用法
· 正 · 文 · 来 · 啦 ·前言------在上篇文章里面,我们分析了预处理的一个完整过程,这能够让我们理解一个写好的程序,在生成一个可执行文件,到底发生了什么,对我们在大型工程项目里面有助于对程序的理解;今天我们继续接着上篇文章的基础上,来分享有关c语言里面关于
宏定义
的用法!
宏定义
基本语法每个#define行(即逻辑行)由三部分组成:第一部分是指令 #define...
数据结构与算法
33,028
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章