社区
C++ 语言
帖子详情
请问define和typedef有啥区别?
pink_tulip
2005-12-17 10:50:58
好像它们的作用范围都只能在一个cpp文件里有效?
还有顺便问下typedef一般在什么场合使用?
...全文
372
21
打赏
收藏
请问define和typedef有啥区别?
好像它们的作用范围都只能在一个cpp文件里有效? 还有顺便问下typedef一般在什么场合使用?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zcz0918
2005-12-19
打赏
举报
回复
完全不一样,在c中define的用处很大,typedef不过定义类型而已
goodluckyxl
2005-12-18
打赏
举报
回复
cpp中 #include 了头文件没有
如果加了 把你代码贴出来看看
pink_tulip
2005-12-18
打赏
举报
回复
我在.h文件中声明了一个类,里面用了typedef定义别名。
可相应的.cpp文件中的类定义使用它时却说不认识这个别名。
这是怎么回事?
ErikChen1985
2005-12-18
打赏
举报
回复
也许您已经注意到#define 不是语句 不要在行末加分号,否则 会连分号一块置换。
yhbttfile
2005-12-18
打赏
举报
回复
"#define"是C语言的宏定义关键字。目前C++为了继承性保留了该关键字,但是一般建议在定义类型的别名时使用typedef。typedef一般用于定义类型的别名,与宏不一样,宏是全局可见的,而typedef是有名字空间的。
"#define"目前只有在C++用于避免重复定义(头文件中使用)。如:
#ifndef XXX
#define XXX
// 头文件的类型或者函数声明内容。
#endif
goodluckyxl
2005-12-18
打赏
举报
回复
typedef 声明一个类型定义别名 减少编程中遇到一些太长的命名的麻烦
#define宏定义
zhengguoshan
2005-12-18
打赏
举报
回复
>>#define跟typedef根本就是两种东西,基本没有可比性,#define是编译期替换,而typedef是>>声明。
>>typedef通常用在简化一个复杂的声明。
-----------------------------------------------------------------------------------
赞同
如果这都不算爱
2005-12-18
打赏
举报
回复
晕,你那么写能用吗?!
拿出来吧!
Bird_fro
2005-12-18
打赏
举报
回复
没联系吧
huangkou
2005-12-18
打赏
举报
回复
在用typedef声明后不能再往里面增加别的东西,而宏则可以用其他类型说明符对宏类型名进行扩展。
在连续的几个变量申明中,用typedef定义的类型能够保证声明中所有的类型变量为同一种类型,而宏定义的类型则无法保证。
pink_tulip
2005-12-18
打赏
举报
回复
拿到类外面来定义,如果程序很庞大,岂不是有可能与其他地方的类似定义冲突?
watermelontx
2005-12-18
打赏
举报
回复
格式不同,功能不同..
ddnlkd1204
2005-12-18
打赏
举报
回复
应该是作用域的问题,把typedef int INT;拿到类外面定义就可以了。
pink_tulip
2005-12-18
打赏
举报
回复
a.h
//////////
class a
{
public:
typedef int INT;
INT b();
};
/////////////
a.cpp
////////////
#include "a.h"
INT a::b()
{
return 0;
}
////////////////
a.cpp : error C2501: 'INT' : missing storage-class or type specifiers
pink_tulip
2005-12-18
打赏
举报
回复
a.h
//////////
class a
{
public:
typedef int INT;
INT b();
};
/////////////
a.cpp
////////////
#include "a.h"
INT a::b()
{
return 0;
}
////////////////
a.cpp : error C2501: 'INT' : missing storage-class or type specifiers
yanshine
2005-12-17
打赏
举报
回复
只要定义类型全用typedef就行了.
typedef太多的任务也做不了.
#define就是个替换,用好了很不错的.
pink_tulip
2005-12-17
打赏
举报
回复
比如什么时候用typedef比较好,什么时候用define比较好
还有,把那些很长的类型名,比如 xx::yy::zz之类的用typedef替换是不是个好习惯?
sankt
2005-12-17
打赏
举报
回复
几乎没有什么联系
#define跟typedef根本就是两种东西,基本没有可比性,#define是编译期替换,而typedef是声明。
typedef通常用在简化一个复杂的声明。
//=========
正解
pink_tulip
2005-12-17
打赏
举报
回复
我主要想问的不是背后的实现,而是使用上的区别。
megaboy
2005-12-17
打赏
举报
回复
#define跟typedef根本就是两种东西,基本没有可比性,#define是编译期替换,而typedef是声明。
typedef通常用在简化一个复杂的声明。
加载更多回复(1)
define
与
typedef
的
区别
define
与
typedef
C++中
define
与
typedef
的
区别
define
与
typedef
大体功能都是使用时给一个对象取一个别名,增强程序的可读性,但同时它们也有一些
区别
。
C++中
typedef
和
define
的
区别
typedef
和#
define
的用法与
区别
一、
typedef
的用法 在C/C++语言中,
typedef
常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:
typedef
int INT;
typedef
int ...
extern和static、#
define
和
typedef
extern extern修饰全局变量 extern在一个文件内扩展全局变量的作用域(这种情况要发挥其作用的话不能...(1)#
define
之后不带分号,
typedef
之后带分号。(2)#
define
可以使用其他类型说明符对宏类型名进行扩展,而 typ
C++ #
define
,
typedef
,using用法
区别
C++ #
define
,
typedef
,using用法
区别
一.#
define
#
define
是宏定义命令,宏定义就是将一个标识符定义为一个字符串,源程序中的该标识符均以指定的字符串来代替,是预编译命令,因此会在预编译阶段被执行 1.无参...
C++ 语言
64,691
社区成员
250,497
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章