打印

发一个C语言里的细节问题

[复制链接]
2043|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zheng522|  楼主 | 2012-5-2 14:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
batsong| | 2012-5-3 11:35 | 只看该作者
define是字符替换

typedef是定义类型

typedef可以做到 typedef char (*pf_t)(void);这种复杂的,define就不行

使用特权

评论回复
板凳
sheenhero| | 2012-5-3 11:38 | 只看该作者
本帖最后由 sheenhero 于 2012-5-3 11:47 编辑

typedef unsigned char      uchar;
#define uchar                   unsigned char
typedef和define的作用是相似的(但实质却不一样),都是给unsigned char定义一个别名。

#define 是预编译时字符替换,不会检查语法错误
typedef 相当于定义一个新的类型,含有语法检查

使用特权

评论回复
地板
hz-dz| | 2012-5-3 15:28 | 只看该作者
岗位要求:
1.大专以上学历;
2.精通C,C++JAVA .net或其它语言之一;
3.对日软件开发经验1年及以上;
4.有日语基础,达到日语3级水平或相当;
5.责任心强,工作细心,踏实认真.

岗位职责:
1.软件开发,测试。

按国家规定享受相关福利待遇!

有兴趣者请发简历至邮箱:hzyicha@126.com
联系电话:0571-28995532

使用特权

评论回复
5
3htech| | 2012-5-4 16:19 | 只看该作者
#define puchar unsigned char *
tepedef unsigned char * puchar;
这两句看起来一样,但是实际还是有一定差别的。

若有语句:puchar  x, y;  目的是定义两个uchar型的指针变量 x,y:

1 用define时,实际上编译器在编译阶段进行字符替换,替换后的语句成了
unsigned char * x, y;  注意注意,看到没有,只有x是uchar型指针,而y只是一个uchar的变量。

2 用typedef则不存在这个问题。因为这是一个新类型。

使用特权

评论回复
评分
参与人数 2威望 +2 收起 理由
hongdan0714jin + 1
ahgao + 1
6
caoxinlei| | 2012-5-4 16:22 | 只看该作者
正在关注

使用特权

评论回复
7
firstblood| | 2012-5-8 14:14 | 只看该作者
讲的比较好的啊,耳目一新

使用特权

评论回复
8
okyouwin| | 2012-5-11 13:19 | 只看该作者
了解下。呵呵

使用特权

评论回复
9
vivilzb1985| | 2012-5-11 17:51 | 只看该作者
楼上的都高手啊,讲得很好啊

使用特权

评论回复
10
dfsa| | 2012-5-12 10:00 | 只看该作者
LZ可以再翻翻C++ primer这本书,上面写的很清楚

使用特权

评论回复
11
shenmu2012| | 2012-5-14 15:17 | 只看该作者
我也看下楼上推荐的这本书啊,谢谢提供信息

使用特权

评论回复
12
秋天落叶| | 2012-5-14 19:01 | 只看该作者
这个自己百度一下,应该不难找到详细的区别

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

821

帖子

3

粉丝