社区
新手乐园
帖子详情
#define定义的数据类型
badcfqtd
2007-03-31 03:19:55
define定义的数据类型,有这种说法吗?
例如:
#define A 123 //这里的123是什么类型的数据?数?字符?
#define B structure man //这里的structure man是什么类型?尽管后面知道它们是声明结构体要用到的.
...全文
4763
13
打赏
收藏
#define定义的数据类型
define定义的数据类型,有这种说法吗? 例如: #define A 123 //这里的123是什么类型的数据?数?字符? #define B structure man //这里的structure man是什么类型?尽管后面知道它们是声明结构体要用到的.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
reflecter
2007-03-31
打赏
举报
回复
哈,C的那几本经典的书上(K&R,C大全,etc),对define的两种功用都有详细的介绍。
chensanniang
2007-03-31
打赏
举报
回复
#define有两种用法,有带参的和不带参的,不带参的可以看作是纯字符串代换,
记得,就是一种代替,是发生在预编译,我们也叫它预处理时期.
最近看书的时候还发现:define 也可以带参,用法: #define宏名(参数列表) 字符串.
xyxfly
2007-03-31
打赏
举报
回复
#define 不能定义数据类型吧
仅仅是替换而已
sq_sunqi
2007-03-31
打赏
举报
回复
在C/C++编译前还要使用一个预处理程序,如cpp.exe来对文件中定义的宏进行宏替换。即
#define M 8
经过预处理后,程序中所有M地方都使用8代换。如果要想在后面接受输入,则应该将这条语句改为
int M = 8;
最好是
static int M = 8;
不过如果这个M是作为数组变量的大小,则在早期C语言或C++语言中是不行的。新C99语言标准可以。
aaron85
2007-03-31
打赏
举报
回复
#define定义的宏的会在编译的时候由编译系统替换掉,它完成的工作就是在把有A的地方换成123,把有B的地方换成structure man,这就是简单的替换,没有其它更多的操作。
至于类型判断也就是替换后的类型,123是整型的常量,在系统中实际上是int型;后面一个就没什么类型可言了,这样定义只是简化以后书写,所有要写structure man的地方写B就可以了。
rabbityxq
2007-03-31
打赏
举报
回复
#define只是替换而已,可以使程序便开修改和维护
zuiaitt
2007-03-31
打赏
举报
回复
#define只是替换.
masou1987
2007-03-31
打赏
举报
回复
#define的定义是默认的把!
julycy
2007-03-31
打赏
举报
回复
用const吧,可以对类型进行检查。
如const int M = 8;
freemonday2002
2007-03-31
打赏
举报
回复
define 主要是方便程序员自定义的数据类型,跟你定义的标准数据类型是等同的效果。不用该定义也是可以的,但当程序大的时候这种优点就会显现出来
jixingzhong
2007-03-31
打赏
举报
回复
#define B structure man //这里的structure man是什么类型?尽管后面知道它们是声明结构体要用到的
就是后面声明的类型 ~
define 只是替换,
不需要完成类型定义的 ~
jixingzhong
2007-03-31
打赏
举报
回复
#define A 123 //这里的123是什么类型的数据?数?字符?
unsigned int
数值的默认类型 ~
pomiox
2007-03-31
打赏
举报
回复
仅仅是替换而已
就这样简单
详解宏
定义
(#
define
)
C语言中用到宏
定义
的地方很多,如在头文件中为了防止头文件被重复包含,则用到:#ifndef cTest_Header_h #
define
cTest_Header_h //头文件内容 #endif在我们常用的 stdio.h 头文件中也可以见到很多宏
定义
,如:#
define
BUFSIZ 1024 //缓冲区大小
C语言typedef(自
定义
数据类型
)与#
define
(宏
定义
)总结
1.简单的宏
定义
#
define
标识符 替换列表(替换列表可以是数,字符串字面量,标点符号,运算符,标识符,关键字,字符常量。注意:替换列表是可以为空的) 典型错误: #
define
N = 100 int a[N]; /*这样会成为int a[= 100],这里会处理成为一种标识记号一样*/ #
define
N 100; int a[N]; /*带分号的
定义
会成为int a[100;],这是一种很常见的错误*/ #
define
pin (int*); pin a,b; int* a,b; /..
#
define
定义
常量和宏,指针和结构体
目录 #
define
定义
常量和宏 #
define
定义
常量 #
define
定义
宏 指针 内存 指针变量的大小 结构体 #
define
定义
常量和宏 #
define
定义
常量 在变量和常量2,#
define
定义
的标识符常量中,就了解到#
define
可以
定义
常量。
定义
一个符号叫做NUM,这里我们可以给它赋值,可以直接打印它的值,也可以创建一个数组,数组的大小用NUM(此时NUM是一个常量)。 #
define
NUM 100 int main() { printf("%d\n
C 语言 —— 明示常量指令:#
define
预处理指令可以出现在源文件的任何地方。 变量有作用域,#
define
定义
的明示常量同样有其作用区域,其
定义
从指令出现的地方到该文件末尾或者 #undef 命令之间有效。 使用 #
define
指令最常见的用法就是用来
定义
明示常量(也叫做符号常量),但是该指令还有许多其他用途。 用法:#
define
标识符 常量。注意后面没有分号!! #
define
又称宏
定义
,标识符是所
定义
的宏名,简称宏。标识符的命名规则遵守 C 语言的标识符命名规则,不过通常采用大写字母来命名宏,以此提醒程序员注意。#
define
#
define
和const的区别
#
define
和const的区别 本文只列举一些简单的区别,用于日常学习,多数引用别处内容 首先,#
define
和const都是
定义
作用 区别: 1.const
定义
的常数是变量 也带类型, #
define
定义
的只是个常数 不带类型。 2.
define
只在预处理阶段起作用,它
定义
的宏在编译后消失了,不占用内存,但是const
定义
的常变量本质上是一种变量,有类型、占用存储单元。 3.
define
定义
的对象没有
数据类型
,编译器只能机械地进行字符替换,没有类型安全检查,即会出现“边际问题”或者是“括号问题”。而
新手乐园
33,320
社区成员
41,774
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章